MySQL --复合查询

文章目录

  • 1.基本查询回顾
  • 2.多表查询
  • 3.自连接
  • 4.子查询
    • 4.1 单行子查询
    • 4.2多行子查询
    • 4.3多列子查询
    • 4.4在from子句中使用子查询
    • 4.5 合并查询
      • 4.5.1union
      • 4.5.2 union all
  • 5.实战OJ

1.基本查询回顾

查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J

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

MySQL --复合查询_第1张图片

按照部门号升序而雇员的工资降序排序

select * from emp order by deptno, sal desc;

MySQL --复合查询_第2张图片

使用年薪进行降序排序

select ename, sal*12+ifnull(comm,0) as '年薪' from emp order by 年薪 desc;

MySQL --复合查询_第3张图片

显示工资最高的员工的名字和工作岗位

select ename, job from emp where sal = (select max(sal) from emp);

MySQL --复合查询_第4张图片

显示工资高于平均工资的员工信息

select ename, sal from emp where sal>(select avg(sal) from emp);

MySQL --复合查询_第5张图片

显示每个部门的平均工资和最高工资

select deptno, format(avg(sal), 2) , max(sal) from emp group by deptno;

MySQL --复合查询_第6张图片

显示平均工资低于2000的部门号和它的平均工资

select deptno, avg(sal) as avg_sal from emp group by deptno having avg_sal<2000;

你可能感兴趣的:(MySQL,mysql,android,性能优化)