永发信息网

使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下

答案:2  悬赏:20  手机版
解决时间 2021-03-13 02:10
使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下

emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)

dept部门表(deptno部门编号/dname部门名称/loc地点)

工资 = 薪金 + 佣金

1.列出至少有一个员工的所有部门。
2.列出薪金比“SMITH”多的所有员工。

3.列出所有员工的姓名及其直接上级的姓名。

4.列出受雇日期早于其直接上级的所有员工。

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

6.列出所有“CLERK”(办事员)的姓名及其部门名称。

7.列出最低薪金大于1500的各种工作。
8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
9.列出薪金高于公司平均薪金的所有员工。
10.列出与“SCOTT”从事相同工作的所有员工。
11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
14.列出所有员工的姓名、部门名称和工资。

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

16.列出各种工作的最低工资。
17.列出各个部门的MANAGER(经理)的最低薪金。
18.列出所有员工的年工资,按年薪从低到高排序。

-----orcle的等连接
SELECt * FROM EMP E ,DEPT D WHERe E.DEPTNO=D.DEPTNO;
-----orcla的外连接
SELECt * FROM EMP E ,DEPT D WHERe E.DEPTNO(+)=D.DEPTNO;
+放在没有匹配行的表一侧,所以dept表的记录完全显示
最佳答案
同样,第一份我自己写的,第二份老师写的(刚到家不好意思呀)
--1.列出至少有一个员工的所有部门。
select * from dept where deptno in(select distinct deptno from emp);

--2.列出薪金比“SMITH”多的所有员工。
select * from emp where sal>(select sal from emp where ename='SMITH');

--3.列出所有员工的姓名及其直接上级的姓名
select ename,(select ename from emp where empno=e.mgr) as mgr from emp e;

--4.列出受雇日期早于其直接上级的所有员工。
select * from emp e where hiredate < (select hiredate from emp where empno=e.mgr);
--5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
select dname,emp.* from emp,dept where emp.deptno(+)=dept.deptno order by emp.deptno;

--6.列出所有“CLERK”(办事员)的姓名及其部门名称。
select ename,dname from emp,dept where job='CLERK' and dept.deptno=emp.deptno;

--7.列出最低薪金大于1500的各种工作。
select job from emp group by job having min(sal)>1500;

--8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
select ename from emp where deptno=(select deptno from dept where dname='SALES');

--9.列出薪金高于公司平均薪金的所有员工。
select * from emp where sal>(select avg(sal) from emp);

--10.列出与“SCOTT”从事相同工作的所有员工。
select * from emp e where exists (select * from emp where job=e.job and ename='SCOTT') and e.ename!='SCOTT';

--11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
select ename,sal from emp where sal=any(select sal from emp where deptno=30);

--12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
select ename,sal from emp where sal>all(select sal from emp where deptno=30);

--13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
select deptno,(select count(*) from emp where deptno=d.deptno) as 人数,(select round(avg(sal+nvl(comm,0)),2) from emp where deptno=d.deptno)as 平均工资,(select round(avg(to_number(to_char(sysdate,'yyyy'))-to_number(to_char(hiredate,'yyyy')))) from emp where deptno=d.deptno)as 平均服务期限 from dept d;

--14.列出所有员工的姓名、部门名称和工资。
select ename,dname,(nvl(comm,0)+sal) as 工资 from emp,dept where emp.deptno=dept.deptno;

--15.列出从事同一种工作但属于不同部门的员工的一种组合。

--16.列出所有部门的详细信息和部门人数。
select a.*,(select count(*) from emp where deptno=a.deptno) as 人数 from dept a;

--17.列出各种工作的最低工资。
select job, min(sal+nvl(comm,0)) from emp group by job;

--18.列出各个部门的MANAGER(经理)的最低薪金。
select deptno,min(sal) from emp where job='MANAGER' group by deptno;

--19.列出所有员工的年工资,按年薪从低到高排序。
select empno,ename,(sal+nvl(comm,0))*12 as 年薪 from emp order by 年薪;

_________________________________________________
------1.列出至少有一个员工的所有部门。

select count(*),deptno from emp group by deptno having count(*)>1;

------2.列出薪金比“SMITH”多的所有员工。
select * from emp
where sal>(select sal from emp where ename='SMITH');

------3.列出所有员工的姓名及其直接上级的姓名。

select ename,(select ename from emp where empno=a.mgr) from emp a;

select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+);

------4.列出受雇日期晚于其直接上级的所有员工。

select ename from emp a where hiredate>(select hiredate from emp where empno=a.mgr);

列出受雇日期早于其直接上级的所有员工。
select ename from emp a where hiredate<(select hiredate from emp where empno=a.mgr);

------5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

select dname,ename from dept left join emp on dept.deptno=emp.deptno;

select dname,ename from dept a,emp b where a.deptno = b.deptno(+);

------6.列出所有“CLERK”(办事员)的姓名及其部门名称。
select dname,ename from dept a,emp b where a.deptno=b.deptno and job='CLERK';

select (select dname from dept where deptno=a.deptno) as dname ,ename from emp a
where job='CLERK';

------7.列出最低薪金大于1500的各种工作。

select job,min(sal) msal from emp
group by job having min(sal)>1500;

------8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

select ename from emp where deptno=(select deptno from dept where dname='SALES');

------9.列出薪金高于公司平均薪金的所有员工。

select ename from emp where sal>(select avg(sal) from emp);

------10.列出与“SCOTT”从事相同工作的所有员工。

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

------11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
select * from emp where sal in
(select sal from emp where deptno=30);

------12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
select * from emp where sal>all
(select sal from emp where deptno=30);

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

select deptno,count(*),
trunc(avg(sal+nvl(comm,0))) avgsal,
trunc(avg(sysdate-hiredate)) avgday
from emp group by deptno;

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

select ename,dname,sal+nvl(comm,0) from emp,dept where emp.deptno=dept.deptno;

------15.列出从事同一种工作但属于不同部门的员工的一种组合。

select distinct a.ename,a.job,a.deptno from emp a,emp b
where (a.job=b.job)and(a.deptno!=b.deptno) order by a.job;

------16.列出所有部门的详细信息和部门人数。
select dept.*,(select count(*) from emp group by deptno having deptno=dept.deptno) tot
from dept;

------17.列出各种工作的最低工资。

select job,min(sal+nvl(comm,0)) from emp group by job;

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

select min(sal) from emp where job='MANAGER' ;

------19.列出所有员工的年工资,按年薪从低到高排序。

select ename,(sal+nvl(comm,0))*12 tot from emp order by tot;

-----orcle的等连接
SELECt * FROM EMP E ,DEPT D WHERe E.DEPTNO=D.DEPTNO;
-----orcla的外连接
SELECt * FROM EMP E ,DEPT D WHERe E.DEPTNO(+)=D.DEPTNO;
+放在没有匹配行的表一侧,所以dept表的记录完全显示
刚到家不好意思呀
全部回答
搜一下:使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
程序员的生活真的那么恐怖吗
奥地利留学存款证明
从山西长治到江苏宿迁,什么路线花费的时间最
监控密码忘了怎么恢复
断路器壳体上参数表示的意思,请从事电气工作
原来在手机上设置了电话来电照片,忘了在哪里
描写张起灵的诗句
榆中北山会不会搬迁
瑶婆翼顶在什么地方啊,我要过去处理事情
松树小学(重庆石柱)地址有知道的么?有点事想
历史上把馒头沾墨吃的,是那个大人物地!谁还
联通如何关闭夜间流量
华为荣耀8解锁密码是几位数
46亿年前的地球是什么样子
为什么物距等于一倍焦距时成像在无限远
推荐资讯
求PC版暗杀类的单机游戏。
聊斋是什么意思?
自己的亲哥哥是直系亲属吗?如果去世了,有丧假
罗晋唐嫣戚薇什么时候参加过非常静距离
虹麦面包店在什么地方啊,我要过去处理事情
当空调主机与遥控器的温度显示不相符时可调节
黄茜敏有喜欢的人吗?【重庆八中阳光校区的黄
暗黑破坏神3武僧拳技哪个最好用
爱宝宝地址在哪,我要去那里办事
酒泉公路路政管理支队敦煌路政管理大队地址在
傻哥川菜馆我想知道这个在什么地方
生田浴室在什么地方啊,我要过去处理事情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?