zoukankan      html  css  js  c++  java
  • Oracle数据库习题

    以下习题都已Oracle数据库中默认表为主体

    1、列出至少有一个员工的所有部门。

    SELECT DISTINCT D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;

    SELECT * FROM DEPT WHERE DEPTNO IN(SELECT DISTINCT DEPTNO FROM EMP);

    SELECT DISTINCT D.DNAME FROM EMP E JOIN DEPT D USING(DEPTNO);

    2、列出薪金比“SMITH”多的所有员工。(大于最大薪水SMITH员工)

    SELECT ENAME FROM EMP WHERE SAL>(SELECT SAL FROM EMP WHERE ENAME ='SMITH');


    3、列出所有员工的姓名及其直接上级的姓名。
    SELECT E.ENAME,M.ENAME FROM EMP E,EMP M WHERE E.MGR=M.EMPNO;

    SELECT E.ENAME,M.ENAME FROM EMP E JOIN EMP M ON(E.MGR=M.EMPNO);


    4、列出受雇日期早于其直接上级的所有员工。

    SELECT E.ENAME FROM EMP E,EMP M WHERE E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE;
    SELECT E.ENAME FROM EMP E JOIN EMP M ON(E.MGR=M.EMPNO AND E.HIREDATE<M.HIREDATE);

    5、列出部门名称和这些部门的员工信息,包括那些没有员工的部门。

    SELECT D.DNAME,E.ENAME FROM EMP E FULL OUTER JOIN DEPT D USING(DEPTNO);

    6、列出所有job为“CLERK”(办事员)的姓名及其部门名称。

    SELECT E.ENAME,D.DNAME FROM EMP E FULL OUTER JOIN DEPT D USING(DEPTNO) WHERE JOB='CLERK';

    SELECT E.ENAME,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND JOB ='CLERK';

    7、列出最低薪金大于1500的各种工作。

    SELECT JOB,MIN(SAL) FROM EMP GROUP BY JOB HAVING MIN(SAL)>1500;

    8、列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

    SELECT * FROM EMP E JOIN DEPT D USING (DEPTNO) WHERE D.DNAME='SALES';

    9、列出薪金高于公司平均薪金的所有员工。
    SELECT ENAME,SAL FROM EMP WHERE SAL>(SELECT AVG(SAL) FROM EMP);


    10、列出与“SCOTT”从事相同工作的所有员工。

    SELECT JOB FROM EMP WHERE ENAME='SOCTT';

    SELECT ENAME FROM EMP WHERE ENAME<>'SCOTT'AND JOB=(SELECT JOB FROM EMP WHERE ENAME='SCOTT');

    11、列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

    SELECT ENAME,SAL FROM EMP WHERE SAL IN (SELECT SAL FROM EMP WHERE DEPTNO=30)AND DEPTNO<>30;


    12、列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

    SELECT ENAME,SAL FROM EMP WHERE SAL>ALL(SELECT SAL FROM EMP WHERE DEPTNO=30);

    13、列出在每个部门工作的员工数量、平均工资和平均服务期限。
    SELECT D.DNAME,COUNT(E.ENAME),AVG(SAL),AVG(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12)FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;

    14、列出所有员工的姓名、部门名称和工资。

    SELECT E.ENAME,D.DNAME,SAL FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO;

    15、列出从事同一种工作但属于不同部门的员工的一种组合。

    select distinct M.ename from emp e,emp m where e.job=m.job and e.deptno<>m.deptno;

    16、列出所有部门的详细信息和部门人数。

    SELECT d.DNAME,COUNT(E.ENAME) FROM EMP E ,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;

    17、列出各种工作的最低工资。
    SELECT JOB,MIN(SAL) FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO GROUP BY E.JOB;

    SELECT JOB,MIN(SAL) FROM EMP E JOIN DEPT D ON(E.DEPTNO=D.DEPTNO) GROUP BY E.JOB;

    18、列出各个部门的MANAGER(经理)的最低薪金(job为MANAGER)。

    SELECT DEPTNO,MIN(SAL) FROM EMP WHERE JOB='MANAGER'GROUP BY DEPTNO;


    19、列出所有员工的年工资,按年薪从低到高排序。

    SELECT ENAME,(SAL*12+nvl(comm,0)*12)年薪 FROM EMP ORDER BY 年薪;

    SELECT ENAME,(SAL*12+nvl(comm,0)*12)年薪 FROM EMP ORDER BY 1;

  • 相关阅读:
    Solr4.7+Tomcat7.0配置
    Solr suggest 搜索建议功能 配置问题
    Solr 通过经纬度指定范围搜索
    Quartz.net 实例
    log4net简单实例
    依赖注入(Autofac)
    设计模式_状态模式_C#
    C# XML操作
    策略模式_C#_设计模式
    STM32随记
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5418295.html
Copyright © 2011-2022 走看看