MySQL练习题2

书接上回:
练习题2:

#1、列出至少有一个雇员的所有部门
select e.Ename 姓名,d.Dname 部门 from emp e,dept d where e.Deptno=d.Deptno;
#2、列出薪金比"SMITH"多的所有雇员
select Ename 姓名,Sal 薪金 from emp where Sal>(select Sal from emp where Ename='江');
#3、列出所有雇员的姓名及其直接上级的姓名
select e.Ename 姓名,em.Ename 上司 from emp e,emp em where e.Mgr=em.Empno;
#4、列出入职日期早于其直接上级的所有雇员
select e.Ename 雇员,e.Hiredate 入职日期,em.Ename 上司,em.Hiredate 上司入职日期 from emp e,emp em where e.Mgr=em.Empno and e.Hiredate<em.Hiredate;
#5、列出部门名称和这些部门的雇员,同时列出那些没有雇员的部门
select d.Dname 部门,e.Ename 姓名 from dept d left join emp e on d.Deptno=e.Deptno;
#6、列出所有“CLERK”(办事员)的姓名及其部门名称
select e.Ename 姓名,d.Dname 部门 from dept d,emp e where d.Deptno=e.Deptno and e.Job='办事员';
#7、列出各种工作类别的最低薪金,显示最低薪金大于1500的记录
select Job 工种,min(sal) 最低薪金 from emp group by job having min(sal)>1500;
#8、列出薪金高于公司平均水平的所有雇员
select Ename 姓名,Sal 薪金 from emp where Sal>(select avg(Sal) from emp);
#9、列出与“SCOTT”从事相同工作的所有雇员
select Ename 姓名 from emp where Job=(select Job from emp where Ename='江帅');
#10、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金
select Ename 姓名,Sal 薪金 from emp where Sal in (select Sal from emp where Deptno='30');
#11、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金
select Ename 姓名,Sal 薪金 from emp where Sal>(select max(Sal) from emp where Deptno='30');
#12、列出每个部门的信息以及该部门中雇员的数量 
select d.*,e.num 数量 from dept d left join (select Deptno,count(1) num from emp group by Deptno) e on d.Deptno=e.Deptno;
#14、列出各个部门的MANAGER(经理)的最低薪金
select d.Dname 部门,e.minSal 最低薪资 from dept d,(select Deptno,min(Sal) minSal from emp where Job='经理' group by Deptno) e where d.Deptno=e.Deptno;
#15、列出薪金水平处于第四位的雇员
select Ename 姓名,Empno 编号,Deptno 部门号,Job 工种,Comm 佣金,Sal 薪金 from (select *,(@i :=@i+1) as pm from emp,(select @i := 0) as it order by sal desc) a where a.pm=4;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值