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

概述

文章目录

    • 准备
    • 问题

准备

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

问题

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

select e.ename ename,m.ename mname from emp e join emp m on e.mgr=m.empno;

在这里插入图片描述

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

select d.deptno,e.* from dept d left outer join emp e on e.deptno=d.deptno;

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

select ename from emp where deptno=
		(select deptno from dept where loc='NEW YORK');

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

select ename from dept d inner join emp e 
					on e.deptno=d.deptno where loc='NEW YORK';

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

select e.ename,d.dname from emp e inner join dept d 
	on e.deptno=d.deptno where ename='SMITH';

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

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管理的员工姓名及其经理姓名

select m.ename,e.ename from emp e join emp m 
	on e.mgr=m.empno where m.ename in('KING','FORD');

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

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字符的部门员工的工资总和,部门人数

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、所有员工的年工资,按年薪从低到高排序

select e.*,sal+nvl(comm,0)*12 nx from emp e order by  nx;

在这里插入图片描述

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

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、所有部门的详细信息和部门人数

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、列出所有员工的姓名、部门名称、工资

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

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

select ename,(select ename from emp where mgr is null) boss
from emp;

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

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、按职位分组,求每个职位的最高工资、最低工资及平均工资

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

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

select * from dept d where d.deptno in
	(select deptno from emp group by deptno having avg(sal)>2000)

在这里插入图片描述

最后

以上就是幸福大米为你收集整理的Oracle之再展身手 练习题2(多表)的全部内容,希望文章能够帮你解决Oracle之再展身手 练习题2(多表)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部