-
111查看全部
-
多表查询; 两个方法的结果一样,如何比较优劣 通过比较select语句的执行计划:explain plan for,一般放在开头,执行结束之后如何查看explain生成的执行计划:select * from table(dbms_xplan.display);可以打印查看执行计划,一般放在末尾 然后看耗费了多少CPU的执行资源,结果发现使用相关子查询比多表查询耗费的CPU资源要少查看全部
-
查询工资大于部门平均工资的员工<br> 相关子查询:<br> select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal<br> from emp e<br> where sal>(select avg(sal) from emp where deptno=e.deptno)<br> 多表查询:<br> select e.empno,e.ename,e.sal,d.avgsal<br> from emp e,(select deptno,avg(sal) avgsal from emp group by deptno) d<br> where e.deptno=d.deptno and e.sal>d.avgsal<br> 相关子查询比多表查询占用cpu少查看全部
-
分页查询<br> select rownum ,r,empno,ename,sal<br> from(select rownum r,empno,ename,sal)<br> from(select rownum,enpno,ename,sal from emp order by sal desc) t1<br> where rownum<=8)t2<br> where r>=5 where rownum > 2,没有查询到任何记录: 因为rownum总是从1开始的,第一条不满足去掉的话,第二条的rownum 又成了1。依此类推,所以永远没有满足条件的记录。 由此,Oracle数据集一个经典的SQL语句分页算法:先排序,再选择rownum < 某页的最大值,再选择rownum > 某页的最小值。 MYSQL通过关键字实现分页查询,而Oracle要通过嵌套子查询的方式来实现分页查询,另外要注意rownum始终是从1开始的!查看全部
-
a not in(10,20,null)相当于a!=10 and a!=20 and a!=null,然而a!=null永远为假, 所以要排除空值,判断是否是null值,只能用is or is not而不能用= 或者!=。 select * from emp where empno not in (select mgr from emp where mgr is not null);查看全部
-
1111查看全部
-
单行子查询中的null值问题查看全部
-
111查看全部
-
多行操作符:any 例子:查询工资比30号部门任意一个员工高的员工信息查看全部
-
111查看全部
-
非法使用单行子查询查看全部
-
单行查询查看全部
-
多行操作符查看全部
-
单行操作符查看全部
-
相关子查询:将主查询中的值作为参数传递给子查询 select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal from emp e where ssal > (select avg(sal) from emp where deptno=e.deptno);查看全部
举报
0/150
提交
取消