select * from emp;
--查询薪水比allen高的员工信息
-- (1)查询allen的薪水
select sal from emp where ename='ALLEN';
-- (2)查询比薪水高于1600的员工信息
select * from emp where sal>1600;
--总结
select * from emp where sal >(select sal from emp where ename='ALLEN');
--案例:
oracle支持,mysql不支持
select deptno,count(*)as num ,avg(sal) as avgsal from emp where deptno is not null
select d.deptno,dname,num,avgsal from dept d,
where d.deptno=t.deptno
--查询本部门最高工资的员工
--(2)查询20号最门的员工的最高工资
--(3)查询300号最门的员工的最高工资
--相关子查询
select * from emp e1 where sal=(select max(sal) from emp e2 where e1.deptno=e2.deptno);
查询本部门工资高于平均工资的那些员工
select * from emp where deptno=10 and sal>(select avg(sal) from emp where deptno=10);
select * from emp where deptno=20 and sal>(select avg(sal) from emp where deptno=20);
select * from emp where deptno=30 and sal>(select avg(sal) from emp where deptno=30);
--相关子查询
order by deptno;
多行子查询:查询的结果多行单列
select sal from emp where job='CLERK';
select * from emp where sal<any(select sal from emp where job='CLERK');
-- 查询工资比所有的“SALESMAN”都高的雇员的编号、名字和工资。
select sal from emp where job='SALESMAN';
select sal from emp where sal>all(select sal from emp where job='SALESMAN');
SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL>(select max(sal) from emp where job='SALESMAN');
select distinct job from emp where deptno=10;
job in(select distinct job from emp where deptno=10);
等量替换
( job='MANAGER' OR JOB='PRESIDENT' OR JOB='CLERK');