使用scott/tiger用户下的emp和dept下列练习。
关系:员工表与部门表模型介绍(关系和字段)
公式:工资=薪金+佣金--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.列出所有员工的年工资,按年薪从低到高排序--19.列出工资最高的前5人,升序排序

解决方案 »

  1.   

    1.select * from scott.dept a
    where exists (select 1
    from scott.emp b
    where a.deptno=b.deptno)
      

  2.   

    2.
    select * from scott.emp a
    where  exists
    (
    select 1
    from scott.emp b
    where ename='SMITH'
    and a.sal>b.sal
    )3.
    select a.ename,b.ename from scott.emp a
    left join scott.emp b
    on a.mgr=b.empno
      

  3.   

    4.
    select a.ename,b.ename from scott.emp a
    left join scott.emp b
    on a.mgr=b.empno
    and a.hiredate<b.hiredate6.
    select a.ename,b.dname from scott.emp a
    left join scott.dept b
    on a.deptno=b.deptno
    where a.job='CLERK'
      

  4.   

    7.
    select job,min(sal)
    from scott.emp
    group by  job
    having min(sal) >15008.
    select *
    from scott.emp a
    where exists
    (select 1
    from scott.dept b
    where a.deptno=b.deptno
    and b.dname='SALES'
    )9.
    select *
    from scott.emp 
    where sal>
    (
    select avg(sal) from scott.emp
    )