MySQL第五讲 练习题2

--1、列出至少有一个员工的所有部门

select deptno,count(*) a from emp  group by deptno having count(*)>1

select deptno, count(*) size from emp group by deptno 
select * from (select deptno, count(*) size from emp group by deptno) pp where pp.size > 1

--2、列出薪金比‘SMITH’多的所有员工 ->子查询

select * from emp where sal>(select sal from emp where ename='smith')

--3、列出所有员工的姓名及其直接上级的姓名 ->>自连接

select worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno

--4、列出受雇日期晚于其直接上级的所有员工

select worker.ename from emp worker,emp boss where worker.mgr=boss.empno and worker.hiredate>boss.hiredate

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

select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno

--6、列出所有'clerk'(办事员)的姓名及其部门名称

select ename,dname from emp e,dept d where e.deptno=d.deptno and e.job='clerk'

--7、列出最低薪金大于1500的各种工作

--7.1先找出各个工作的最低薪金
select min(sal),job from emp group by job

select min(sal),job from emp group by job having min(sal)>1500
select job from (select min(sal) a,job from emp group by job) q where a>1500

--8、列出在部门‘sales’(销售部)工作的员工的姓名,假定不知道销售部的部门编号

select ename,'sales' from emp where deptno=(select deptno from dept where dname='sales')
select ename from emp,dept where emp.deptno=dept.deptno and dept.dname='sales'

--9、列出薪金高于公司平均薪金的所有员工

select * from emp where sal>(select avg(sal) from emp)

--10、列出与‘scott’从事相同工作的所有员工

select * from emp where job=(select job from emp where ename='scott')

--11、列出在每个部门工作的员工数量、平均工资

select deptno, count(*) 员工数量, avg(sal) 平均工资 from emp group by deptno

--12、列出所有员工的姓名、部门名称和工资

select ename,dname,sal from emp,dept where emp.deptno=dept.deptno

--13、找出各种工作的最低工资

select job,min(sal) 最低工资 from emp group by job

--14、找出manager(经理)的最低薪金

select min(sal) from emp where job='manager'

--15、列出所有员工的年工资、按年薪从低到高排序

select sal*13 aa from emp order by aa
select sal*13 年工资 from emp order by 年工资

你可能感兴趣的:(MySQL第五讲 练习题2)