zoukankan      html  css  js  c++  java
  • 数据库学习7-26

    课堂练习

    1.用相关子查询实现:查询每个部门工资最低的两个员工编号、姓名、工资。

     select empno,enamel,sal  from emp a  where 2>(select count(1) from emp b where a.deptno=b.deptno and a.sal>b.sal);  

    2.查询每个部门工资前二。

     select *  from emp a  where 2>(select count(1) from emp b where a.deptno=b.deptno and a.sal<b.sal);

     select *  from emp a  where exists (select 1 from emp b where a.deptno=b.deptno and a.sal<b.sal having count(1)<2);

    oracle

    第八章

    课后作业

    1.用集合运算,列出不包含job为SALESMAN 的部门的部门号。  

    select deptno from emp ;  minus  select deptno from emp where job='SALESMAN';

    2.写一个联合查询,列出下面的信息:EMP表中所有雇员的名字和部门编号,不管他们是否属于任何部门。  DEPT表中的所有部门编号和部门名称,不管他们是否有员工。  

    select ename,deptno ,null from emp  union  select deptno,dname ,null from dept;  

    3.用集合运算查询出职位为SALESMAN和部门编号为10的人员编号、姓名、职位,不排除重复结果。

     select empno,ename,job from emp where job='SALESMAN'  union all  select empno,ename,job from emp where deptno=10;

    4.用集合查询出部门为10和20的所有人员编号、姓名、所在部门名称。

     select empno,ename ,dept.dname from emp ,dept   where emp.deptno in(10,20) and emp.deptno=dept.deptno

     union  

    select empno,ename,dept.dname from emp ,dept   where emp.deptno in(10,20) and emp.deptno=dept.deptno;

    第九章

    练习1  

    1.用相关子查询实现:查询比自己所在职位平均工资高的员工姓名、职位。

     select ename,job  from emp a  where sal>(select avg(sal) from emp b where a.deptno=b.deptno);

     2.用相关子查询实现:查询员工工资为其部门最低工资的员工编号、姓名、工资。

     select empno,ename,sal  from emp a  where sal=(select min(sal) from emp b where a.deptno=b.deptno);

     3.用相关子查询实现:查询每个部门工资最低的两个员工编号、姓名、工资。

     select empno,ename,sal  from emp a  where 2>(select count(1) from emp b where a.deptno=b.deptno and a.sal<b.sal);

    课后作业

     如下练习,使用相关子查询完成。

     1.写一个查询,来查找所有其薪水多于他所在部门的平均薪水的雇员,显示名字、部门号和部门的平均薪水,按平均薪水排序。

     select ename, deptno, avg(sal) avgsal  

     from emp a   where exists (select 1 from emp b where a.deptno = b.deptno having a.sal > avg(sal))          

    group by ename,deptno

      order by avgsal;

     2.写一个查询显示所有雇员的 ID、名字和部门名字。

     select empno,ename,dname  from emp e,dept d  where e.deptno=d.deptno;

     3.写一个查询,显示那些在其所在的部门中有一个或多个比他来的更晚但薪水更高的同事名字。

     select ename  from emp a  where exists (select 1 from emp b where a.deptno=b.deptno and a.sal>b.sal and a.hiredate>b.hiredate);

  • 相关阅读:
    Java中关于String类型的10个问题
    关于Linux中后台运行程序(&)退出时收不到SIGHUP信号的说明
    《Javascript DOM编程艺术》学习笔记 第8章 充实文档的内容
    《Javascript DOM编程艺术》学习笔记 第7章 动态创建标记
    《Javascript DOM编程艺术》学习笔记 第1-6章
    golang: 读取已关闭的缓冲型channel的表现
    关于《汇编语言(王爽)》程序6.3使用16个dw 0的问题
    关于寄存器的一些笔记
    img格式镜像转ISO格式
    深入理解计算机操作系统:第1章 计算机系统漫游(学习笔记)
  • 原文地址:https://www.cnblogs.com/hole/p/11251871.html
Copyright © 2011-2022 走看看