1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。
SELECT d.dname,d.loc,d.deptno,temp.cou FROM dept d,(SELECT deptno,COUNT(*) cou FROM emp GROUPBY deptno) temp WHERE d.deptno=temp.deptno;
2. 列出所有员工的姓名及其直接上级的姓名。
SELECT e.ename,d.ename FROM emp e, emp d WHERE e.mgr=d.empno;
3. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。
SELECT e.empno,e.ename,d.dname FROM emp e,dept d,emp em WHERE d.deptno=e.`deptno`AND e.`mgr`=em.`empno`AND e.`hiredate`<em.`hiredate`;
4. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
SELECT d.dname,e.* FROM emp e,dept d WHERE e.`deptno`=d.`deptno`;
5. 列出最低薪金大于15000的各种工作及从事此工作的员工人数。
SELECT job,COUNT(*)FROM emp GROUPBY job HAVINGMIN(sal)>15000;
6. 列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。
SELECT e.ename FROM emp e,dept d WHERE e.`deptno`=d.`deptno`AND d.dname='销售部';
7. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导,工资等级。
SELECT e.*,d.dname AS'部门',em.`ename`AS'领导',sa.`grade`AS'工资等级'FROM
emp e,dept d, emp em, salgrade sa WHERE e.`deptno`=d.`deptno`AND
e.sal>(SELECTAVG(sal) FROM emp) AND e.`mgr`=em.`empno`AND e.`sal` BETWEEN sa.`losal`AND sa.`hisal`;
8.列出与大乔从事相同工作的所有员工及部门名称。
SELECT e.*,d.dname FROM emp e,dept d WHERE e.`job`= (SELECT job FROM emp WHERE ename='大乔')
AND e.`deptno`=d.`deptno`;
9.列出薪金高于在部门30工作的所有员工的薪金 的员工姓名和薪金、部门名称。
SELECT e.ename,e.sal+IFNULL(COMM,0) AS'总薪金',d.dname FROM emp e,dept d
WHERE e.`deptno`=d.`deptno`AND (e.`sal`+IFNULL(COMM,0))>
ALL(SELECT(sal+IFNULL(COMM,0)) FROM emp WHERE deptno = 30);