Oracle复习笔记(三)

2015-02-02 23:25:38 · 作者: · 浏览: 35
20000; 8. 说明以下两条SQL语句的输出结果: SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL; --有结果 SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL; --无结果 9. 让SELECT 语句的输出结果为 1. SELECT * FROM SALGRADE; 2. SELECT * FROM BONUS; 3. SELECT * FROM EMP; 4. SELECT * FROM DEPT; 5. …… 列出当前用户有多少张数据表,结果集中存在多少条记录。 select 'SELECT * FROM ' || tab.tname || ';' from tab; select * from tab; 10. 判断SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否报错,为什么? --不会报错,Oracle会检测是否可转为数字格式,如果可以将隐士转换,不可则报错。 /*----------------------------------------Oracle SQL:经典查询练手第三篇----------------------------------------*/ /*Oracle分页查询*/ --三层嵌套分页 select e2.* from (select e1.*,rownum rn from (select * from emp order by empno) e1 where rownum <= 5) e2 where e2.rn >
0; --减集分页(不能排序?) select * from emp where rownum<=5 minus select * from emp where rownum<=0; --多表连接分页查询(第一层需要指定显示列,列名不能用重复) select b.* from (select rownum rn,a.* from (select e.*,d.dname,d.loc from emp e,dept d where e.deptno = d.deptno order by e.empno) a where rownum <=5) b where b.rn >=1; /*查询高于自己部门平均工资的员工信息*/ select e2.empno,e2.ename,e2.sal,e2.deptno,e1.deptavgsal from emp e2,(select deptno,avg(sal) deptavgsal from emp group by deptno) e1 where e2.deptno = e1.deptno and e2.sal > e1.deptavgsal;