本文使用的实例表结构与表的数据如下:
  scott.emp员工表结构如下:
  SQL> DESC SCOTT.EMP;
  Name     Type         Nullable Default Comments
  -------- ------------ -------- ------- --------
  EMPNO    NUMBER(4)                     员工编号
  ENAME    VARCHAR2(10) Y                员工姓名
  JOB      VARCHAR2(9)  Y                职位
  MGR      NUMBER(4)    Y                上级编号
  HIREDATE DATE         Y                雇佣日期
  SAL      NUMBER(7,2)  Y                薪金
  COMM     NUMBER(7,2)  Y                佣金
  DEPTNO   NUMBER(2)    Y                所在部门编号
  --提示:工资 = 薪金 + 佣金
  scott.dept部门表
  SQL> DESC SCOTT.DEPT;
  Name   Type         Nullable Default Comments
  ------ ------------ -------- ------- --------
  DEPTNO NUMBER(3)                     部门编号
  DNAME  VARCHAR2(14) Y                部门名称
  LOC    VARCHAR2(13) Y                地点
  scott.emp表的现有数据如下:
  SQL> SELECT * FROM SCOTT.EMP;
  EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
  ----- ---------- --------- ----- ----------- --------- --------- ------
  7369 SMITH      CLERK      7902 1980-12-17     800.00               20
  7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30
  7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30
  7566 JONES      MANAGER    7839 1981-4-2      2975.00               20
  7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30
  7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30
  7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10
  7788 SCOTT      ANALYST    7566 1987-4-19     4000.00               20
  7839 KING       PRESIDENT       1981-11-17    5000.00               10
  7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30
  7876 ADAMS      CLERK      7788 1987-5-23     1100.00               20
  7900 JAMES      CLERK      7698 1981-12-3      950.00               30
  7902 FORD       ANALYST    7566 1981-12-3     3000.00               20
  7934 MILLER     CLERK      7782 1982-1-23     1300.00               10
  102 EricHu     Developer  1455 2011-5-26 1   5500.00     14.00     10
  104 huyong     PM         1455 2011-5-26 1   5500.00     14.00     10
  105 WANGJING   Developer  1455 2011-5-26 1   5500.00     14.00     10
  17 rows selected
  Scott.dept表的现有数据如下:
  SQL> SELECT * FROM SCOTT.DEPT;
  DEPTNO DNAME          LOC
  ------ -------------- -------------
  110 信息科         海口
  10 ACCOUNTING     NEW YORK
  20 RESEARCH       DALLAS
  30 SALES          CHICAGO
  40 OPERATIONS     BOSTON
  50 50abc          50def
  60 Developer      HaiKou
  7 rows selected
  用SQL完成以下问题列表:
  1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名。
  2. 找出EMP表员工名字中含有A 和N的员工姓名。
  3. 找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,佣金从大到小。
  4. 列出部门编号为20的所有职位。
  5. 列出不属于SALES 的部门。
  6. 显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。
  7. 显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。
  8. 说明以下两条SQL语句的输出结果:
  SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
  SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
  9. 让SELECT 语句的输出结果为
  SELECT * FROM SALGRADE;
  SELECT * FROM BONUS;
  SELECT * FROM EMP;
  SELECT * FROM DEPT;
  ……
  列出当前用户有多少张数据表,结果集中存在多少条记录。
  10. 判断SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错,为什么?
  各试题解答如下(欢迎大家指出不同的方法或建议!):
  --------1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名。---------
  SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '__A%';
  ENAME
  ----------
  ADAMS
  BLAKE
  CLARK
  -------2. 找出EMP表员工名字中含有A 和N的员工姓名。----------
  SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%' AND ENAME LIKE '%N%';
  ENAME
  ----------
  ALLEN
  MARTIN
  WANGJING
  --------或--------
  SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%N%';
  ENAME
  ----------
  ALLEN
  MARTIN
  WANGJING
  /*--------3. 找出所有有佣金的员工,列出姓名、工资、佣金,显示结果按工资从小到大,
  佣金从大到小。----------*/
  SQL> SELECT ENAME,SAL + COMM AS WAGE,COMM
  2  FROM SCOTT.EMP
  3  ORDER BY WAGE,COMM DESC;
  ENAME            WAGE      COMM
  ---------- ---------- ---------
  TURNER           1500      0.00
  WARD             1750    500.00
  ALLEN            1900    300.00
  MARTIN           2650   1400.00
  EricHu           5514     14.00
  WANGJING         5514     14.00
  huyong           5514     14.00
  SMITH
  JONES
  JAMES
  MILLER
  FORD
  ADAMS
  BLAKE
  CLARK
  SCOTT
  KING
  17 rows selected
  -------4. 列出部门编号为20的所有职位。----------
  SQL> SELECT DISTINCT JOB FROM EMP WHERE DEPTNO = 20;
  JOB
  ---------
  ANALYST
  CLERK
  MANAGER
  -------5. 列出不属于SALES 的部门。----------
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME <> 'SALES';
  DEPTNO DNAME          LOC
  ------ -------------- -------------
  10 ACCOUNTING     NEW YORK
  20 RESEARCH       DALLAS
  40 OPERATIONS     BOSTON
  50 50abc          50def
  60 Developer      HaiKou
  110 信息科         海口
  6 rows selected
  --或者:
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME != 'SALES';
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT IN('SALES');
  SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT LIKE 'SALES';
  ---6. 显示工资不在1000 到1500 之间的员工信息:名字、工资,按工资从大到小排序。---------
  SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP
  2  WHERE SAL + COMM NOT BETWEEN 1000 AND 1500
  3  ORDER BY WAGE DESC;
  ENAME            WAGE
  ---------- ----------
  EricHu           5514
  huyong           5514
  WANGJING         5514
  MARTIN           2650
  ALLEN            1900
  WARD             1750
  6 rows selected
  --或者
  SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP
  2  WHERE SAL + COMM < 1000 OR SAL + COMM > 1500
  3  ORDER BY WAGE DESC;
  ENAME            WAGE
  ---------- ----------
  EricHu           5514
  huyong           5514
  WANGJING         5514
  MARTIN           2650
  ALLEN            1900
  WARD             1750
  6 rows selected
  /*----- 7. 显示职位为MANAGER 和SALESMAN,年薪在15000 和20000 之间的员工的信息:名字、职位、年薪。----------*/
  SQL> SELECT ENAME 姓名,JOB 职位,(SAL + COMM) * 12 AS 年薪
  2  FROM SCOTT.EMP
  3  WHERE (SAL + COMM) * 12 BETWEEN 15000 AND 20000
  4  AND JOB IN('MANAGER','SALESMAN');
  姓名       职位              年薪
  ---------- --------- ----------
  TURNER     SALESMAN       18000
  /*----- 8. 说明以下两条SQL语句的输出结果:
  SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
  SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
  ----------*/
  SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;
  EMPNO      COMM
  ----- ---------
  7369
  7566
  7698
  7782
  7788
  7839
  7876
  7900
  7902
  7934
  10 rows selected
  ---------------------------------------------------------------
  SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;
  EMPNO      COMM
  ----- ---------
  --说明:IS NULL是判断某个字段是否为空,为空并不等价于为空字符串或为数字0;
  --而 =NULL 是判断某个值是否等于 NULL,NULL = NULL和NULL <> NULL都为 FALSE。
  /*-----9. 让SELECT 语句的输出结果为
  SELECT * FROM SALGRADE;
  SELECT * FROM BONUS;
  SELECT * FROM EMP;
  SELECT * FROM DEPT;
  ……
  列出当前用户有多少张数据表,结果集中存在多少条记录。
  ----------*/
  SQL> SELECT 'SELECT * FROM '||TABLE_NAME||';' FROM USER_TABLES;
  'SELECT*FROM'||TABLE_NAME||';'
  ---------------------------------------------
  SELECT * FROM BONUS;
  SELECT * FROM EMP;
  SELECT * FROM DEPT;
  --......等等,在此不列出。
  ---10. 语句SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错?---------
  SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > '1500';
  ENAME            SAL
  ---------- ---------
  ALLEN        1600.00
  JONES        2975.00
  BLAKE        2850.00
  CLARK        2450.00
  SCOTT        4000.00
  KING         5000.00
  FORD         3000.00
  EricHu       5500.00
  huyong       5500.00
  WANGJING     5500.00
  10 rows selected
  SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > 1500;
  ENAME            SAL
  ---------- ---------
  ALLEN        1600.00
  JONES        2975.00
  BLAKE        2850.00
  CLARK        2450.00
  SCOTT        4000.00
  KING         5000.00
  FORD         3000.00
  EricHu       5500.00
  huyong       5500.00
  WANGJING     5500.00
  10 rows selected
  --说明不会抱错,这儿存在隐式数据类型的。

ORACLE SQL:经典查询练手第二篇相关推荐

  1. 经典查询练手第二篇(不懂装懂,永世饭桶!)

    本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来.在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出.交流与分享才能 ...

  2. oracle 存储过程 胡勇,Oracle SQL:经典查询练手第二篇

    本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来.在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出.交流与分享才能 ...

  3. ORACLE SQL: 经典查询练手第二篇

    本文使用的实例表结构与表的数据如下: scott.emp员工表结构如下: SQL> DESC SCOTT.EMP; Name     Type         Nullable Default  ...

  4. oracle17502,[推荐]ORACLE SQL:经典查询练手第二篇(不懂装懂,永世饭桶!)

    --------1. 找出EMP表中的姓名(ENAME)第三个字母是A 的员工姓名.---------SQL>SELECTENAMEFROMSCOTT.EMPWHEREENAMELIKE'__A ...

  5. ORACLE SQL:经典查询练手第一篇

    本文使用的实例表结构与表的数据如下: scott.emp员工表结构如下: Name     Type         Nullable Default Comments -------- ------ ...

  6. [推荐推荐][提供下载]ORACLE SQL:经典查询练手系列文章收尾(目录篇)

    [推荐推荐][提供下载]ORACLE SQL: 经典查询练手系列文章收尾(目录篇) --通过知识共享树立个人品牌. 通过近一个月的努力,<经典查询练手系列>也快告一段落,但并不代表结束,以 ...

  7. [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)

    [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!) [推荐]ORACLE SQL: 经典查询练手第三篇(不懂装懂,永世饭桶!) --通过知识共享树立个人品牌. 本文与大家共同讨论 ...

  8. [强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)

    [推荐]ORACLE SQL: 经典查询练手第四篇(不懂装懂,永世饭桶!) --通过知识共享树立个人品牌. 本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那 ...

  9. 经典查询练手第四篇(不懂装懂,永世饭桶!)

    本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来.在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出.交流与分享才能 ...

最新文章

  1. 【linux】Valgrind工具集详解(二):入门
  2. medRxiv | 基于网络的人类冠状病毒的药物重定位
  3. ADI射频电路计算小工具ADIsimRF介绍
  4. Python入门100题 | 第066题
  5. 知道坐标matlab三维作图,已知点坐标,要求根据坐标作出三维曲面图
  6. Ambari 2.6.0 HDP 2.6.3集群搭建
  7. CSS 实现文字、图片垂直对齐(vertical-align)
  8. Html和CSS在浏览器中常见的兼容性问题处理
  9. java 错误无法启动_1069 错误(由于登录失败而无法启动服务)解决方法
  10. 吴恩达机器学习之多变量线性回归实现部分
  11. python面试资格确认_Python面试必须要看的15个问题
  12. JAVA JSP javaweb餐厅点餐系统源码(点餐系统)点餐系统网上订餐系统在线订餐系统
  13. 远程小组软件开发过程(1):流程
  14. android app闪退的原因分析,打开一个app就闪退解决方法
  15. Xcode Localizations Change Development Language (Xcode 本地化 修改默认的开发语言)
  16. MeteoInfoLab脚本示例:获取气团轨迹每个节点的气象数据
  17. python:考试前,练手习题(斐波那契数,字符串排序,九九乘法表,水仙花数,求和...求数字倍数,(保佑不挂科!)
  18. Office 修复、卸载重装方法
  19. 计算机导论题目2020,计算机网络论文题目_
  20. 用Halo在自己服务器搭建一个个人博客

热门文章

  1. C语言实现并查集(Disjoint set或者Union-find set)(附完整源码)
  2. QT实现单遍线框渲染
  3. QT的QQmlProperty类的使用
  4. python格式化字符串_阿博的Python之路详解String数据类型
  5. mybatis实战教程(mybatis in action),mybatis入门到精通
  6. 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有
  7. struts2之单个文件上传(特别推荐)
  8. Python面向对象基础示例_创建对象
  9. Mysql select into outfile NULL值导出的处理方法
  10. svn增量打包部署_持续集成、持续交付、持续部署(CI/CD)简介