黑马程序员c语言教程:子查询简介.docxVIP

  • 3
  • 0
  • 约3.19千字
  • 约 9页
  • 2017-07-29 发布于北京
  • 举报
--为什么要用子查询1 先求scott的工资select sal from empwhere ename=SCOTT2select * from empwhere sal 3000//===select * from empwhere sal (select sal from empwhere ename=SCOTT) /子查询的场景对于一个问题,1步不能求解,需要多步where ename=SCOTT) 子查询的本质 select语言的嵌套子查询知识架构1 合理的书写风格2 子查询的() 不要丢掉3 子查询和主查询可以不是同一张表,只要子查询返回的结果,主查询能用就行...4 可以在主查询的什么地方放一个子查询select a, b, c, (select *......) //ok //在select后面的子查询 必须是单行子查询from tab1, tab2, (select **) //okwhere ...(select *...) //okorder by ... //errgroup by ... //err havning ...(select ****) //5 子查询的分类按照子查询返回的条目数,分为: 单行子查询和多行子查询--单行子查询只能用单行比较操作符 (= )--多行子查询只能用多行比较操作符 (in any all)按照子查询和主查询的执行顺序来分一般子子查询 子查询把结果返回给主查询....一般 相关子查询 主查询把select列中的参数传递给 子查询 6 子查询返回空值的问题7 子查询中一般不使用order by,但是Top-N问题,子查询必须要用order byeg: 求工资的前三名 分页.... M=x=N8 子查询结果集一般不排序 ,Top-N问题除外解释3-eg 查询部门名称是SALES 的员工信息 分析思路: 因为SALES在部门表中,,,查找部门表,才能获取部门编号, .....===员工信息//子查询select * from empwhere deptno = (select deptno from deptwhere dname=SALES)//多表查询 select e.*from emp e, dept dwhere e.deptno = d.deptno and d.dname = SALESSQL优化 select * select a, b, c, from .... //效率高 //多表查询 效率高 解释4-1select empno, ename, sysdate, ddddd, (select dname from dept where deptno=10) 十号部门名称from emp select empno, ename, sysdate, ddddd, (select dname from dept) 十号部门名称from emp 第 1 行出现错误:ORA-01427: 单行子查询返回多个行 解释4-2---from是一个集合,,tab表 本身就是I个集合 select a, b, c, from (select *......) //ok //在select后面的子查询 必须是单行子查询 查询员工名字 编号 select * from ___________________ select * from (select empno, ename from emp) 解释5-1--单行子查询只能用单行比较操作符 (= ) pptselect * from empwhere sal (select sal from empwhere ename=SCOTT) 解释5-2 多行子查询 多行比较操作符in-- 查询部门名称为 SALES 和 ACCOUNTING 的员工信息-- 查询部门名称为 不是 SALES 和 ACCOUNTING 的员工信息select * from empwhere deptno in (select deptno from dept where dname=SALES or dname=ACCOUNTING)select * from empwhere deptno not in (select deptno from dept where dname=SALES or dname=ACCOUNTING)all any -- 查询薪水 比30号部门 所有员工薪高的员工信息 all select * from empwhere sal (select max(sal) from emp where deptno = 30) select * from empwhere sal all (s

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档