当前位置:首页 > 02 Oracle 习题集(V4)
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页
共分享92篇相关文档