有两张表:
1.table dept(dept_id number(2)/*部门编号*/,dep_name  varchar2(40)/*部门名称*/)
2. table emp (emp_id number(6)/*员工编号*/,emp_name varchar2(20)/*员工名称*/,dep_id number(2)/*部门编号*/) 
问题如下:
1. 请编写一条查询语句,展示所有员工的“员工编号、员工名称、部门名称”。
2. 请编写一条查询语句,展示“部门编号、部门名称、员工人数”。3. 请编写一条查询语句,展示部门人数在5人以上的员工信息:“员工编号、员工姓名、部门名称、部门人数”。
4. 请编写一条删除语句,删除emp表中部门人数在3-7之间的所有员工记录。

解决方案 »

  1.   

    1.SELECT emp.emp_id, emp.emp_name, dept.dep_name
      FROM emp JOIN dept ON emp.dep_id = dept.dept_id2.SELECT dept.dep_id, dept.dep_name, a.empnum
      FROM dept JOIN (SELECT   dep_id, COUNT (*) empnum
                          FROM emp
                      GROUP BY dep_id) a ON dept.dep_id = a.dep_id3.SELECT emp.emp_id, emp.emp_name, dept.dep_name, a.empnum
      FROM emp JOIN (SELECT   dep_id, COUNT (*) empnum
                         FROM emp
                     GROUP BY dep_id
                       HAVING COUNT (*) > 5) a ON emp.dep_id = a.dep_id JOIN dept ON emp.dep_id =
                                                                                       dept.dept_id
    4.DELETE FROM emp
          WHERE dep_id IN (SELECT   dept_id
                               FROM dept
                           GROUP BY dept_id
                             HAVING COUNT (*) BETWEEN 3 AND 7)