我是靠谱客的博主 幸福大米,这篇文章主要介绍Oracle之再展身手 练习题2(多表),现在分享给大家,希望可以做个参考。

文章目录

    • 准备
    • 问题

准备

  • 一颗强大的心
  • 工具:连接了oracle的SQL developer
  • 环境:Oracle的Scott用户

问题

1、列出所有雇员的姓名及直接上级的姓名

复制代码
1
2
select e.ename ename,m.ename mname from emp e join emp m on e.mgr=m.empno;

在这里插入图片描述

2、列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门

复制代码
1
2
select d.deptno,e.* from dept d left outer join emp e on e.deptno=d.deptno;

在这里插入图片描述
3、所有部门在NEW YORK的员工姓名
子查询法

复制代码
1
2
3
select ename from emp where deptno= (select deptno from dept where loc='NEW YORK');

在这里插入图片描述
内连接法

复制代码
1
2
3
select ename from dept d inner join emp e on e.deptno=d.deptno where loc='NEW YORK';

在这里插入图片描述
4、员工SMITH的姓名,部门名称

复制代码
1
2
3
select e.ename,d.dname from emp e inner join dept d on e.deptno=d.deptno where ename='SMITH';

在这里插入图片描述
5、员工姓名、部门名称、工资、工资级别,工资级别大于4级

复制代码
1
2
3
4
5
6
select e.ename,d.dname,e.sal,s.grade from emp e inner join dept d on e.deptno=d.deptno left outer join salgrade s on e.sal between s.losal and s.hisal where s.grade>4;

在这里插入图片描述
6、King 和 FORD管理的员工姓名及其经理姓名

复制代码
1
2
3
select m.ename,e.ename from emp e join emp m on e.mgr=m.empno where m.ename in('KING','FORD');

在这里插入图片描述
7、员工名,参加工作时间,经理名,参加工作时间

复制代码
1
2
3
select e.ename,e.hiredate,m.ename,m.hiredate from emp e join emp m on e.mgr=m.empno where e.hiredate<m.hiredate;

在这里插入图片描述
8、 部门名称中,带S字符的部门员工的工资总和,部门人数

复制代码
1
2
3
4
5
select sum(sal),count(*) from emp e where e.deptno in (select d.deptno from dept d where d.dname like '%S%') group by e.deptno;

在这里插入图片描述
9、所有员工的年工资,按年薪从低到高排序

复制代码
1
2
select e.*,sal+nvl(comm,0)*12 nx from emp e order by nx;

在这里插入图片描述

10、 各种工作的最低工资以及从事此工作的雇员姓名

复制代码
1
2
3
4
select e.ename,e.sal,e.job from emp e,(select min(sal) losal,job from emp group by job) m where e.sal=m.losal and e.job=m.job;

在这里插入图片描述
11、所有部门的详细信息和部门人数

复制代码
1
2
3
4
5
select d.*,sump from dept d left outer join (select count(*) sump,deptno from emp group by deptno)m on d.deptno=m.deptno;

在这里插入图片描述
12、列出所有员工的姓名、部门名称、工资

复制代码
1
2
select e.ename,d.dname,e.sal from emp e join dept d on e.deptno=d.deptno;

在这里插入图片描述
13、所有员工的姓名,老板名字

复制代码
1
2
3
select ename,(select ename from emp where mgr is null) boss from emp;

在这里插入图片描述
14、每个雇员的编号、姓名、工资、部门名称、工资等级

复制代码
1
2
3
4
select e.empno,e.ename,e.sal,d.dname,s.grade from emp e inner join dept d on e.deptno=d.deptno inner join salgrade s on e.sal between s.losal and s.hisal;

在这里插入图片描述
15、按职位分组,求每个职位的最高工资、最低工资及平均工资

复制代码
1
2
select max(sal),min(sal),floor(avg(sal)) from emp group by job;

在这里插入图片描述
16、统计平均工资大于2000的部门详情

复制代码
1
2
3
select * from dept d where d.deptno in (select deptno from emp group by deptno having avg(sal)>2000)

在这里插入图片描述

最后

以上就是幸福大米最近收集整理的关于Oracle之再展身手 练习题2(多表)的全部内容,更多相关Oracle之再展身手内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部