Mysql查询加强

2019-08-07  本文已影响0人  温柔倾怀

查看表结构

desc 表名;
show create table 表名;

使用算术表达式加强

计算每个雇员的年薪
select (ifnull(sal,0.0)+ifnull(comm,0.0)) * 12 as 年薪 from emp;

where子句的加强

select * from emp where sal between 2000 and 3000;
select * from emp where sal>=2000 and sal<=3000;

显示首字符为SS的员工姓名和工资
select ename,sal from emp where 'S'=left(ename,1);
select ename,sal from emp where ename like 'S%';

显示第三个字符为大写o的所有员工的姓名和工资
select ename,sal from emp where ename like '__O%';

显示empno为123,234,800的雇员情况
select * from emp where empo in (123,234,800);
显示没有上级的雇员情况
select * from emp where mgr is null;

逻辑操作符的加强

select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';

使用order by子句

按照工资从高到低的顺序显示
select * from emp order by sal;
按照部门号升序而雇员的工资降序排序
select * from emp order by deptno,sal desc;

mysql的分页查询

实际查询时,不可能把所有的记录都返回,而是一页一页返回,这是我们就会使用分页查询(limit)

select 列名 from 表名 limit ($pageNow-1)*$pageSize,$pageSize;

聚合函数的加强-max,min,avg,sum,count

select avg(sal),deptno from emp where deptno=20;
显示工资最高的员工和其工作岗位
select * from emp where sal=(select max(sal) from emp)
显示工资高于平均工资的员工信息
select * from emp where sal>(select avg(sal) from emp);

group by 和having子句的加强

显示每个部门的平均工资和最高工资
select avg(sal),max(sal) from emp group by deptno;
显示每个部门的每种岗位的平均工资和最低工资
select avg(sal),max(sal) from emp group by deptno,job;
显示平均工资低于2000的部门号和它的平均工资
select avg(sal) as myavg,deptno from emp group by deptno having myavg<2000;

数据分组关键字顺序

同时出现书写顺序 group by ,having ,order by
统计各个部门的平均工资,并且是大于2000,按照平均工资从高到低排序
select avg(sal) as myavg from emp group by deptno having myavg>2000 order by myavg desc;

上一篇 下一篇

猜你喜欢

热点阅读