欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Oracle作业3

发布时间:2024/9/30 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Oracle作业3 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Oracle作业3

1、查询出有3个以上下属的员工信息(子查询--分级查询-having) SELECT * FROM emp e WHERE (SELECT count(*) FROM emp WHERE e.empno=mgr)>=3;2、查询所有大于本部门平均工资的员工信息(子查询--分组) SELECT job,count(*) FROM emp WHERE sal> (SELECT avg(sal) FROM emp) GROUP BY job;3、查询所有工资高于平均工资(平均工资包括所有员工)的销售人员('SALESMAN')(子查询--聚合函数) SELECT*FROM emp WHERE job='SALESMAN' AND sal> (SELECT avg(sal) FROM emp);4、查询各个职位员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位(子查询--聚合函数) SELECT job,count(*) FROM emp WHERE sal> (SELECT avg(sal) FROM emp) GROUP BY job;5、查看每个员工都工作在哪个城市 SELECT d.loc FROM emp e RIGHT JOIN dept d ON e.job = d.dname; SELECT ename,loc FROM emp e,dept d WHERE e.deptno=d.deptno;6、查看每个员工都工作在哪个城市并在结果集中显示40部门信息 SELECT ename,loc FROM emp e,dept d WHERE e.deptno=d.deptno AND e.deptno=40; SELECT * FROM (SELECT a.deptno deptno, loc FROM emp a, dept d WHERE a.deptno = d.deptno) c WHERE c.deptno = 40;7、查看每个员工的工资等级 SELECT e.*, s.grade FROM emp e, salgrade s WHERE sal BETWEEN losal and hisal;8、查看每个员工的直属管理者 SELECT e.*, e2.ename FROM emp e,emp e2 WHERE e.mgr=e2.empno;9、查询员工的基本信息,附加其上级的姓名(自连接) SELECT e.*, e. ename FROM emp e;10、显示所有职员的姓名及其所在部门的名称和工资(多表查询) SELECT e.ename, d.dname, e.sal FROM emp e, dept d; 11、查询在研发部('RESEARCH')工作员工的编号,姓名,工作部门,工作所在地(多表查询) SELECT e.empno, e.ename, d.dname, d.loc FROM emp e, dept d WHERE e.deptno = d.deptno AND d.dname = 'RESEARCH';12、查询各个部门的名称和员工人数(分组+多表查询) SELECT e.deptno, c FROM (SELECT COUNT(*) c, deptno FROM emp GROUP BY deptno) e, dept d WHERE e.deptno = d.deptno;13、查询每个员工的信息及工资级别(用到表Salgrade)(多表查询) SELECT e.*,s.grade FROM emp e,salgrade s WHERE sal BETWEEN losal AND hisal;14、部门编号与7934相同的人有哪些?(子查询) SELECT e.*,s.grade FROM emp e,salgrade s WHERE sal BETWEEN losal AND hisal; 15、参加工作比7788晚的人有哪些?(子查询) SELECT e.*,s.grade FROM emp e,salgrade s WHERE sal BETWEEN losal AND hisal; 16、每个部门拿最少工资的人?(分组) SELECT e.*,s.grade FROM emp e,salgrade s WHERE sal BETWEEN losal AND hisal;17、查询姓名中第二个字母为L的人的工资(函数) select ename,sal from emp where ename like '_L%';18、列出工资前5名的人(子查询) SELECT rownum rn, tt.* FROM (SELECT * FROM emp ORDER BY sal DESC) tt WHERE rownum < 6;19、大于30部门最大工资的人?(子查询--分组) SELECT * FROM emp WHERE sal > ALL(SELECT sal FROM emp WHERE deptno = 30);20、工资高于本部门平均工资的人(拿上游工资的人)? (子查询--分组) SELECT * FROM emp e, (SELECT AVG(sal) avgsal, deptno FROM emp GROUP BY deptno) b WHERE e.deptno = b.deptno;21、工资相同的人有哪些?(子查询) SELECT * FROM emp WHERE sal in (SELECT sal FROM emp GROUP BY sal HAVING COUNT(empno) > 1);22、显示工资比'ALLEN'高的所有员工的姓名和工资(子查询) SELECT e.ename, e.sal FROM emp e WHERE e.sal > (SELECT m.sal FROM emp m WHERE m.ename = 'ALLEN')23、显示与'SMITH'从事相同工作的员工的详细信息(子查询) SELECT*FROM emp WHERE deptno=(SELECT deptno FROM dept WHERE dname='SMITH');24、查询工资相同的员工的工资和姓名(子查询) SELECT*FROM emp e WHERE (SELECT count(*) FROM emp WHERE sal=e.sal GROUP BY sal)> 1;25、按工资进行排名,排名从1 开始,工资相同排名相同(如果两人并列第1 则没有第2,从第三名继续排) SELECT sal,rank () over (ORDER BY sal DESC) FROM emp; 与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的Oracle作业3的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。