zoukankan      html  css  js  c++  java
  • oracle习题-emp表查询练习

    emp表查询练习

    1 查询emp表的全部记录

      Select * from emp;

    2 查询出每个雇员的编号、姓名、基本工资

      Select empno,ename,sal from emp;

    3 查询出每个雇员的职位并消除重复行

      Select distinct job from emp;

    4 查询出每个雇员的姓名、职位

      Select ename,job from emp;

    5 要求显示每一个雇员的姓名、职位、基本年薪,并将年薪命名为income

      Select ename,job,sal*12 as income from emp;

    6 由于公司的福利很高,每个月都有200元的饭食补助以及100元车费补贴,这个时候的年薪

      Select ename,job,(sal+300)*12 as年薪 from emp;

    7 要求现在的数据库按照如下的格式显示:“雇员编号是:7369的雇员姓名是:SMITH,基本工资是:800,职位是:CLERK!”

      Select ‘雇员编号是: ’||empno ||’ 的雇员姓名是: ’|| ename || ‘,基本工资是: ’|| sal ||’,职位是: ’|| job || ‘!’ from emp;

    8 要求查询出基本工资高于1500的所有雇员信息

      Select * from emp where sal>150

    9 查询出所有职位是CLERK的雇员信息  

      Select * from emp where job=’CLERK’;

    10 查询工资在1500~3000之间的全部雇员信息

      SELECT * FROM EMP WHERE SAL BETWEENT 1500 AND 3000;
    
      SELECT * FROM EMP WHERE SAL>=1500 AND SAL<=3000;

    11 查询出职位是CLERK,或者是SALESMAN的全部信息

      SELECT * FROM EMP WHERE JOB=’CLERK’ OR JOB=’SALESMAN’;
    
      SELECT * FROM EMP WHERE JOB IN(‘CLERK’,’SALESMAN’);

    12 查询出职位是CLERK,或者是SALESMAN的全部信息,并且要求这些雇员的工资大于1200

      SELECT * FROM EMP WHERE (JOB=’CLERK’ OR JOB=’SALESMAN’) AND SAL>1200;
    
      SELECT * FROM EMP WHERE JOB IN(‘CLERK’,’SALESMAN’) AND SAL>1200;

    13 查询所有不是CLERK的雇员信息

      SELECT * FROM EMP WHERE JOB<>’CLERK’;
    
      SELECT * FROM EMP WHERE JOB!=’CLERK’;

    14 要求查询在1981年雇佣的全部雇员信息(使用between and)

      SELECT * FROM EMP WHERE HIREDATE BETWEEN01-1月-81AND31-12月-81’;
    
      SELECT * FROM EMP WHERE HIREDATE BETWEEN TO_DATE(‘1981-01-01’,’YYYY-MM-DD’) AND TO_DATE(‘1981-12-31’,’YYYY-MM-DD’);

    15 要求查询出所有的雇员信息,按照工资由高到低排序,如果工资相同,则按照雇佣日期由早到晚排序

      SELECT * FROM EMP ORDER BY SAL DESC,HIREDATE ASC;

    16 找出奖金高于薪金的员工。

      SELECT * FROM EMP WHERE NVL(COMM,0)>SAL;

    17 找出奖金高于薪金的60%的员工。

      SELECT * FROM EMP WHERE NVL(COMM,0)>SAL*0.6;

    18 找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。

      SELECT * FROM EMP WHERE DEPTNO=10 AND JOB=’MANAGER’ OR DEPTNO=20 AND JOB=’CLERK’;

    19 找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料。

      SELECT * FROM EMP WHERE DEPTNO=10 AND JOB=’MANAGER’ OR DEPTNO=20 AND JOB=’CLERK’ OR JOB NOT IN(‘MANAGER’,’CLERK’) AND SAL>=2000;

    20 找出收取奖金的员工的不同工作。

    SELECT DISTINCT JOB FROM EMP WHERE COMM IS NOT NULL;
    SELECT DISTINCT JOB FROM EMP WHERE NVL(COMM,0)<>0;

    21 找出没有奖金或奖金低于100的员工。

    SELECT * FROM EMP WHERE COMM IS NULL OR COMM<100;

    22 查询岗位(job)为MANAGER的员工的数量

    SELECT JOB,COUNT(*) FROM EMP WHERE JOB=’MANAGER’ GROUP BY JOB;
    
    SELECT COUNT(*) FROM EMP WHERE JOB=’MANAGER’;
    
    SELECT COUNT(JOB) FROM EMP WHERE JOB=’MANAGER’;

    23 统计各部门下工资大于500的员工的平均工资

    SELECT DEPTNO,AVG(SAL) FROM EMP WHERE SAL>500 GROUP BY DEPTN

    24 统计平均工资大于500的部门

    SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO HAVING AVG(SAL)>500

    25 算出部门30中得到最多奖金的员工奖金

    SELECT MAX(COMM) FROM EMP WHERE DEPTNO=30;
    
    SELECT DEPTNO,MAX(COMM) FROM EMP WHERE DEPTNO=30 GROUP BY DEPTNO;

    26 算出每个职位的员工数和最低工资

    SELECT JOB,COUNT(JOB),MIN(SAL) FROM EMP GROUP BY JOB;


    作者:8亩田
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.

    本文如对您有帮助,还请多帮 【推荐】 下此文。
    如果喜欢我的文章,请关注我的公众号
    如果有疑问,请下面留言

    学而不思则罔 思而不学则殆
  • 相关阅读:
    TreeView拖动
    反射机制
    SQLServer2005/2008 XML数据类型操作
    开发与研发:一字之差的感想
    设置在64位机器上的IIS(IIS6/IIS7)兼容32位程序(64位ODBC和32位ODBC的问题同样适用)
    setTimeout和setInterval的使用
    Oracle 安装/使用、配置/卸载
    链接sql数据库以及Oracle 数据库和启动缓存以及停止缓存
    jQuery学习笔记—— .html(),.text()和.val()的使用
    C# List<T>用法
  • 原文地址:https://www.cnblogs.com/liu-wang/p/8269460.html
Copyright © 2011-2022 走看看