02 Oracle 习题集(V4)

发布时间 : 星期二 文章02 Oracle 习题集(V4)更新完毕开始阅读

Oracle习题集 北京融信学唐科技有限公司

order by avg(sal) desc;

6. 查询emp表中薪水最少,和薪水最大员工的姓名和薪水,并按薪水从大到小

排序。 select ename,sal from emp

where sal=(select max(sal) from emp ) or sal=(select min(sal) from emp ) order by sal desc;

7. 列出薪金比SMITH高的所有员工。 select ename,sal

from emp

where sal>(select sal from emp where ename like 'SMITH'); 8. 列出所有员工的姓名及其直接上级领导的姓名。

select e.ename,m.ename from emp e,emp m where e.mgr=m.empno;

9. 列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称。

select e.empno,e.ename,dname,e.hiredate,m.hiredate from emp e,emp m,dept d where e.mgr=m.empno and e.deptno=d.deptno

and to_char(e.hiredate,'yyyymmdd')

select dname,e.* from emp e,dept d

where e.deptno(+)=d.deptno;

11. 列出所有CLERK(办事员)的姓名,及其部门名称,部门人数。

select *

from (select deptno,ename from emp

第9页 共32页

Oracle习题集 北京融信学唐科技有限公司

where job='CLERK') T ,

(select e.deptno,dname,count(e.deptno) from emp e,dept d

where e.deptno=d.deptno and job='CLERK' group by e.deptno,dname) M where T.deptno=M.deptno;

12. 列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数。

select job,count(job) from emp group by job

having min(sal)>1500;

13. 列出在部门SALES(销售部)工作的员工的姓名,假定不知道销售部的部门编

号。

select ename,e.deptno,dname from emp e,dept d where dname='SALES' and e.deptno=d.deptno;

14. 列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的等级

工资。

select e.ename,dname,m.ename,s.grade,e.sal from emp e,emp m,dept d,salgrade s where e.deptno=d.deptno and e.mgr=m.empno

and e.sal between losal and hisal and e.sal>(select avg(sal) from emp);

15. 列出与SCOTT从事相同工作的所有员工的编号,姓名,职位及其部门名称。

select empno,ename,job,dname from emp e,dept d where e.deptno=d.deptno

第10页 共32页

Oracle习题集 北京融信学唐科技有限公司

and job=(select job from emp where ename='SCOTT');

16. 列出薪金等于部门30中员工的薪金的,所有员工的姓名和薪金。

select ename,sal from emp where deptno=30;

17. 列出薪金高于在部门30工作的所有员工的薪金的员工姓名、薪金和部门名

称。

select ename,sal,dname

from emp e,dept d where e.deptno=d.deptno

and sal>all(select sal from emp where deptno=30);

18. 列出在每个部门工作的员工数量、平均工资和平均服务期限。

select dname,count(*),avg(sal),avg((sysdate-hiredate)/365) from emp e,dept d where e.deptno=d.deptno group by dname;

19. 列出所有员工的姓名、部门名称和工资。

select ename,dname,sal from emp e,dept d where e.deptno=d.deptno;

20. 列出所有部门的详细信息和部门人数。

select d.deptno,dname,loc,count(e.deptno) from emp e,dept d where e.deptno=d.deptno group by d.deptno,dname,loc;

21. 列出各种工作的最低工资及从事此工作的雇员姓名。

SELECT *

FROM EMP e,(SELECT job,MIN(sal) ssal FROM emp GROUP BY job)t WHERE e.job=t.job AND e.sal=t.ssal;

22. 列出各个部门的MANAGER(经理)的最低薪金。

select dname,job,min(sal)

第11页 共32页

Oracle习题集 北京融信学唐科技有限公司

from emp e,dept d where e.deptno=d.deptno and job='MANAGER' group by dname,job;

23. 列出员工的年工资,按年薪从低到高排序。 select ename,sal*12

from emp e order by sal*12 asc;

24. 查出员工的信息,并要求这些员工的主管的薪水超过3000。

select e.*,m.sal from emp e,emp m where e.mgr=m.empno and m.sal>=3000;

25. 求出部门名称中,带S字符的部门员工的、工资合计、部门人数。给任职日

期超过10年的人加薪10%。 select dname,sum(sal),count(dname) from emp e,dept d

where e.deptno=d.deptno and dname like '%S%' group by dname;

26. 查询公司员工工资的最大值,最小值,平均值,总和。

select max(sal),min(sal),sum(sal),avg(sal) from emp;

27. 查询各job的员工工资的最大值,最小值,平均值,总和。

select job,min(sal),max(sal),avg(sal),sum(sal) from emp group by job;

28. 选择具有各个job的员工人数(提示:对job进行分组)。

select job,count(job) from emp group by job;

第12页 共32页

联系合同范文客服:xxxxx#qq.com(#替换为@)