黑马程序员c语言教程:oracle指令大全

上传人:xiao****1972 文档编号:84791157 上传时间:2019-03-04 格式:DOCX 页数:4 大小:42.55KB
返回 下载 相关 举报
黑马程序员c语言教程:oracle指令大全_第1页
第1页 / 共4页
黑马程序员c语言教程:oracle指令大全_第2页
第2页 / 共4页
黑马程序员c语言教程:oracle指令大全_第3页
第3页 / 共4页
黑马程序员c语言教程:oracle指令大全_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《黑马程序员c语言教程:oracle指令大全》由会员分享,可在线阅读,更多相关《黑马程序员c语言教程:oracle指令大全(4页珍藏版)》请在金锄头文库上搜索。

1、-什么时候用外连接呢?比如领导向你要所有学生的列表,顺便把所属的班级也列出来,就需要外连接 -在Where语句中使用子查询 - -雇员中最高薪水的人员名称 -1,先求出最高薪水 -2,再求雇员中最高薪水的人员名称 select ename from emp where sal=(select max(sal) from emp) -有哪些人的薪水是在整个雇员的平均薪水之上的 select ename,sal from emp where sal (select avg(sal) from emp) - -雇员中哪些人是经理人 -1,首先查询mgr中有哪些号码 -2,再看有哪些人员的号码在此出现

2、 select distinct mgr from emp where mgr is not null order by mgr select ename from emp where empno in (select distinct mgr from emp where mgr is not null ) -where in 中不让写orderby select ename from emp where empno in (select distinct mgr from emp where mgr is not null order by mgr) - -在From子句中使用子查询 -

3、-部门平均薪水的等级 -1,首先将每个部门的平均薪水求出来 -2,然后把结果当成一张表,再用这张结果表和salgrade表做连接,以此求得薪水等级 select deptno,avg(sal) from emp group by deptno select * from (select deptno,avg(sal) avg_sal from emp group by deptno) t join salgrade on avg_sal between losal and hisal; - -每个部门最高薪水的人员名称 -1,首先将每个部门的最高薪水求出来 -2,然后把结果当成一张表,再用em

4、p和这张结果表做连接,以此求得每个部门最高薪水的人员名称 select deptno,max(sal) from emp where deptno is not null group by deptno select ename from emp e join (select deptno,max(sal) max_sal from emp where deptno is not null group by deptno ) t on sal = max_sal and e.deptno = t.deptno - -哪些人的薪水在部门的平均薪水之上 -1,首先将每个部门的平均薪水求出来 -2,

5、然后把结果当成一张表,再用emp和这张结果表做连接,以此求得哪些人的薪水在部门的平均薪水之上 select deptno,avg(sal) avg_sal from emp group by deptno select * from emp join (select deptno,avg(sal) avg_sal from emp group by deptno)t on (salavg_sal and emp.deptno=t.deptno) - -求部门中(所有人的)平均的薪水等级,形式如: - deptno avg_grade - 10 3.67 - 20 2.8 - 30 2.5 -1

6、,先求每个人的薪水等级 -2,再按照部门分组,求平均数 select deptno,sal,grade from emp join salgrade on sal between losal and hisal select deptno,avg(grade) from (select deptno,sal,grade from emp join salgrade on sal between losal and hisal)t group by deptno - -使用伪字段:rownum,- - -用来标识每条记录的行号,行号从1开始,每次递增1 select rownum,emp.* f

7、rom emp; -oracle下rownum只能使用 = 等比较操作符, select rownum,emp.* from emp where rownum5; -当rownum和order by 一起使用时,会首先选出符合rownum条件的记录,然后再排序 -(错误的写法)例如,当我们要求薪水最高的前5个人时,最直接的想法可以这样写: select * from emp where rownum5 order by sal desc -(正确的写法)可以这样写 select * from (select * from emp order by sal desc) t where rownum=5

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号