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

本文精选了多个实用的SQL查询案例,包括获取最新入职员工、按薪资等级统计员工数、展示员工及其上级信息等,帮助读者掌握复杂查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

–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

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值