1、第一:此处以安装oracle数据库时默认的数据为例,来分析oracle数据库子查询的用法,使用的工具是sqlplus,默认数据如下:
2、子溽朽孑臾查询使用情况:当一步不能求解时,可以使用子查询。注意:子查询分为单行子查询和 多行子查询,可以在主查询的s髫潋啜缅elect, from, where, having 都可以放子查询,不可以在主查询的group by 放子查询。单行操作符对应单行子查询,多行操作符对应多行子查询。在select中放子查询时,要求只能是单行子查询
3、子查询练习实例1:找到薪水大于本部门平均薪水的员工(以第一步图片数据为准)select * from emp e1 where sal > ( select avg(sal) from emp e2 where e2.deptno=e1.deptno )
4、简要介绍一下接下来用到的rownum,rownum是一个伪列,表示记录在结果集中的行号。注意rownum一旦生成,就不会变化(会先按没有排序时的默认顺序生成rownum,然后再执行排序),对于rownum,只能使用<与<=,不能使用>与>=与=等等
5、子溽朽孑臾查询练习实例2:找到工作表中工资最高的前5名的员工信息(以第一步图片数据为准)select rownum, empno, ename, salfrom (select empno, ename, sal from emp order by sal desc)where rownum<=5
6、子查询练习实例3:要求每个员工后面显示他经理的工资(以第一步图片数据为准)select empno ,ename, sal ,my_sal ,mgr ,(select sal from emp where empno=e.mgr) AS mgr_safrom emp e