總結(jié):通過這18道練習(xí)題,理解了left join,right join 和子查詢。學(xué)會(huì)了coun(*)和group by的搭配使用。有疑問的是第13題的“在每個(gè)部門工作的員工數(shù)量”、“平均服務(wù)期限”計(jì)算和第15題的“部門人數(shù)”。
1.列出至少有一個(gè)員工的所有部門。
2.列出薪金比“SMITH”多的所有員工。
3.列出所有員工的姓名及其直接上級(jí)的姓名。
4.列出受雇日期早于其直接上級(jí)的所有員工。
5.列出部門名稱和這些部門的員工信息,同時(shí)列出那些沒有員工的部門
6.列出所有“CLERK”(辦事員)的姓名及其部門名稱。
7.列出最低薪金大于1500的各種工作。
8.列出在部門“SALES”(銷售部)工作的員工的姓名,假定不知道銷售部的部門編號(hào)。
9.列出薪金高于公司平均薪金的所有員工。
10.列出與“SCOTT”從事相同工作的所有員工。
11.列出薪金等于部門30中員工的薪金的所有員工的姓名和薪金。
12.列出薪金高于在部門30工作的所有員工的薪金的員工姓名和薪金。
13.列出在每個(gè)部門工作的員工數(shù)量、平均工資和平均服務(wù)期限。
14.列出所有員工的姓名、部門名稱和工資。
15.列出所有部門的詳細(xì)信息和部門人數(shù)。
16.列出各種工作的最低工資。
17.列出各個(gè)部門的MANAGER(經(jīng)理)的最低薪金。
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