Orcale数据库练习题 男人看了会沉默,女人看了会流泪(中)

   日期:2020-09-21     浏览:89    评论:0    
核心提示:–1.取得最后入职的5名员工select *from (select *from emporder by hiredate desc)where rownum<=5;–2取得每个薪水等级有多少员工select s.grade "工资等级",count(*) "人数"from emp e,salgrade swhere sal between s.losal and s.hisalgroup by s.grade–3列出所有员工及直接上级的姓名 -

–1.取得最后入职的5名员工

select *
from (
select *
from emp
order by hiredate desc
)
where rownum<=5;

–2取得每个薪水等级有多少员工

select s.grade "工资等级",count(*) "人数"
from  emp e,salgrade s
where sal between s.losal and s.hisal
group by  s.grade

–3列出所有员工及直接上级的姓名

 -- nvl(null,0) 如果为null 返回0
select e1.ename,nvl(e2.ename,'没有上级')
from emp e1,emp e2
where e1.mgr=e2.empno(+)

–4列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称

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

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

使用右连接 因为要显示的是部门名称(同时列出那些没有员工的部门) 就是现实全部的部门

select d.dname"部门名称" , e.*
from emp e,dept d
where e.deptno(+)=d.deptno

–6列出至少有一个员工的所有部门

select deptno ,count(ename)
from emp
group by deptno;

–7列出薪金比"SMITH"多的所有员工信息.

select *
from emp e
where e.sal>
(
select sal
from emp 
where ename='SMITH'
)

–8 --列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数

select j.job,c.co
from
(select job 
from emp 
group by job
having min(sal)>1500)j
,
(select job, count(*) co
from emp
group by job) c
where j.job=c.job

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服