02 Oracle 习题集(V4) 联系客服

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

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

order by to_char(hiredate,'mm'),to_char(hiredate,'yyyy');

30. 显示所有员工的日薪金,忽略余数。每个月的天数都以30天计。 select ename,trunc(sal/30) from emp ;

31. 找出在(任何年份)2月受聘的所有员工的姓名,对于每个员工,显示其加入公司的天数。

select ename,hiredate,(sysdate-hiredate) 天数 from emp

where to_char(hiredate,'mm')=’02’;

第5页 共32页

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

第2章 多表查询

1. 显示所有员工的姓名ename,部门号deptno和部门名称dname。

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

2. 查询20号部门员工的job和20号部门的loc。

select ename,job,loc from emp e,dept d where e.deptno=d.deptno;

3. 选择所有有奖金comm的员工的ename , dname , loc。

select ename,dname,loc,comm from emp e,dept d

where e.deptno=d.deptno and comm is not null;

4. 选择在工作地点DALLAS工作的员工的ename , job , deptno, dname。

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

where e.deptno=d.deptno and loc='DALLAS';

5. 选择所有员工的姓名ename,员工号deptno,以及他的管理者mgr的姓名

ename和员工号deptno,结果类似于下面的格式: employees SMITH Emp# 7369 manager FORD Mgr# 7902 select e.ename employees,e.empno Emp#,m.ename manager,m.empno Mgr# from emp e,emp m where e.mgr=m.empno;

6. 查询各部门员工姓名和他们所在位置,结果类似于下面的格式:

Deptno 20 Ename SMITH Loc DALLAS select e.deptno Deptno,ename Ename,loc Loc

第6页 共32页

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

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

7. 显示:员工编号,员工名称,员工所在部门编号,员工所在部门名称。

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

8. 显示:员工编号,员工名称,经理编号,经理名称。

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

9. 显示:员工编号,员工名称,经理编号,经理名称,员工所在部门编号,员

工所在部门名称。

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

10. 显示:员工编号,员工名称,经理编号,经理名称,员工所在部门编号,员

工所在部门名称,经理所在部门编号,经理所在部门名称。 select

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

第7页 共32页

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

第3章 分组查询

1. 列出至少有一个员工的所有部门。 select deptno,count(ename)

from emp group by deptno having count(ename)>=1;

2. 查询emp表中出每个部门的部门代码、薪水之和、平均薪水。

select deptno,sum(sal),avg(sal) from emp group by deptno;

3. 查询emp表中出部门人数大于等于2的部门的部门代码、部门人数。

select deptno,count(empno) from emp group by deptno having count(empno)>=2;

4. 查询emp表中出部门平均薪水小于等于20000的部门的部门代码、平均薪水,

并按平均薪水从大到小排序。 select deptno,avg(sal) from emp group by deptno having avg(sal)<=20000 order by avg(sal) desc;

5. 查询emp表中出部门合计薪水大于等于1000的部门的部门代码、平均薪水,

并按平均薪水从大到小排序。 select deptno,avg(sal),sum(sal) from emp group by deptno having sum(sal)>=1000

第8页 共32页