mysql查询之项目高级查询练习下

所用到的表见上章:mysql查询之项目高级查询练习上

题目及答案:

1.列出最低薪金大于15000的各种工作及从事此工作的员工人数。
根据题找信息
employee 

select job,count(*) from employee group by job having min(sal)>15000;

2.列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。
根据题找信息
employee dept
select deptnu from dept where dname="销售部";

内连接查询
select ename from employee where deptnu=(select deptnu from dept where dname="销售部"); 

3.列出与诸葛亮从事相同工作的所有员工及部门名称。

根据题找信息
employee dept 
select job from employee where ename='诸葛亮'

左连接查询
select a.ename,b.dname from employee a left join dept b on a.deptnu=b.deptnu where job=(select job from employee where ename='诸葛亮' );

内连接查询
select  a.ename,b.dname from employee a,dept b where a.job=(select job from employee where ename='诸葛亮') and b.deptnu=a.deptnu;

4.列出薪金比 在部门30工作的员工的薪金 还高的员工姓名和薪金、部门名称。
根据题找信息
employee dept
select max(sal) from employee where deptnu='30';

内连接查询
select a.ename,a.sal,b.dname from employee a,dept b where a.sal>(select max(sal) from employee where deptnu='30') and a.deptnu=b.deptnu;


5.列出每个部门的员工数量、平均工资。
根据题找信息
employee 
select deptnu,avg(sal) as sals ,count(*) as person from employee group by deptnu;

左连接查询
select a.dname,b.sals,b.person from dept a left join (select deptnu,avg(sal) as sals ,count(*) as person from employee group by deptnu) b on a.deptnu=b.deptnu;

6.列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导,工资等级。
根据题找信息
emploee dept

select avg(sal) from employee; 

内连接查询
select a.*,c.dname,b.ename,d.grade from employee a,employee b,dept c,salgrade d where a.sal>(select avg(sal) from employee) and a.deptnu=c.deptnu and a.mgr=b.empno and a.sal>=lowsal and a.sal<=higsal; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值