mysql练习
表结构
DROP TABLE IF EXISTS EMP; |
员工表
部门表
薪资等级表
试题
取得每个部门最高薪水的人员名称
select deptno,max(sal) as maxsal from emp group by deptno; |
哪些人的薪水在部门平均薪水之上
select deptno,avg(sal) as avgsal from emp group by deptno; |
取得部门中(所有人的)平均薪水等级
select deptno,avg(sal) as avgsal from emp group by deptno; |
不准用组函数(MAX),取得最高薪水(给出两种解决方案)
/* 方法一 */ |
取得平均薪水最高的部门的部门编号
select deptno,avg(sal) as avgsal from emp group by deptno; |
取得平均薪水最高的部门的部门名称
select deptno,avg(sal) as avgsal from emp group by deptno; |
求平均薪水的等级最低的部门的部门名称
select deptno,avg(sal) as avgsal from emp group by deptno; |
取得比普通员工(员工代码没有在mgr上出现的)的最高薪水还要高的经理人姓名
select ename from emp where sal = (select min(sal) from emp where mgr not in (select mgr from emp where mgr <> null)) |
取得薪水最高的前五名员工
select ename from emp order by sal desc limit 0,5; |
取得每个薪水等级有多少员工
select count(*),s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal group by s.grade; |
列出所有员工及领导的名字
select e.ename,l.ename from emp e left join emp l on e.mgr=l.empno; |
列出受雇日期早于其直接上级的所有员工编号、姓名、部门名称
select t.empno,t.ename,d.dname |
列出至少有5个员工的所有部门
select d.dname from dept d join |