总结:通过这18道练习题,理解了left join,right join 和子查询。学会了coun(*)和group by的搭配使用。有疑问的是第13题的“在每个部门工作的员工数量”、“平均服务期限”计算和第15题的“部门人数”。
1.列出至少有一个员工的所有部门。
2.列出薪金比“SMITH”多的所有员工。
3.列出所有员工的姓名及其直接上级的姓名。
4.列出受雇日期早于其直接上级的所有员工。
5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
6.列出所有“CLERK”(办事员)的姓名及其部门名称。
7.列出最低薪金大于1500的各种工作。
8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
9.列出薪金高于公司平均薪金的所有员工。
10.列出与“SCOTT”从事相同工作的所有员工。
11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
14.列出所有员工的姓名、部门名称和工资。
15.列出所有部门的详细信息和部门人数。
16.列出各种工作的最低工资。
17.列出各个部门的MANAGER(经理)的最低薪金。
18.列出所有员工的年工资,按年薪从低到高排序。
1.SELECT dname
from dept
where deptno in(select deptno from emp)
2.SELECT ename,sal
from emp
WHERE sal > (select sal from emp where ename = 'SMITH')
3.select a.ename,(select ename from emp as b where b.empno=a.mgr)as boss_name
from emp a
4.select a.ename
from emp a
where a.hiredate<(select hiredate from emp as b where b.empno=a.mgr)
5.select a.dname,b.empno,b.ename,b.job,b.mgr,b.hiredate,b.sal,b.comm,b.deptno
from dept a left join emp b on a.deptno = b.deptno
6.select a.ename,b.dname
from emp a join dept b
on a.job = 'CLERK' and a.deptno = b.deptno
7.select DISTINCT job
from emp
GROUP BY job having min(sal) > 1500
8.select ename
from emp
where deptno = (SELECT deptno from dept where dname = 'sales')
9.select ename
from emp
where sal > (select avg(sal) from emp)
10.select ename
from emp
where job in(select job from emp where ename = 'scott' )
11.select a.ename,a.sal
from emp a
where a.sal in(select b.sal from emp b where b.deptno = 30) and a.deptno<>30
12.select ename,sal
from emp
where sal > (select max(sal) from emp where deptno = 30)
13.SELECT deptno,COUNT(*),AVG(sal),AVG(DATEDIFF(now(),hiredate))
FROM emp
GROUP BY deptno
14.select a.ename,b.dname,a.sal
from emp a join dept b on a.deptno = b.deptno
15.select dept.deptno, dept.dname,dept.loc,count(*)
from emp join dept on emp.deptno = dept.deptno
GROUP BY emp.deptno
16.SELECT job,min(sal)
from emp
GROUP BY job
17.select deptno,min(sal)
from emp
where job = 'manager' GROUP BY deptno
18.select ename,sal*12 as yearsal
from emp
ORDER BY yearsal