龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle SQL:经典查询练手第二篇(1)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来。在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你

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

接上一篇Oracle SQL:经典查询练手第一篇

本篇相对上篇来说比较简单,如果你对本篇的各测试做得不称心如意的话,我想你是时候给自己充下电了!

本文使用的实例表结构与表的数据如下:

scott.emp员工表结构如下:

  1. SQL> DESC SCOTT.EMP;  
  2. Name     Type         Nullable Default Comments   
  3. -------- ------------ -------- ------- --------   
  4. EMPNO    NUMBER(4)                     员工编号    
  5. ENAME    VARCHAR2(10) Y                员工姓名    
  6. JOB      VARCHAR2(9)  Y                职位       
  7. MGR      NUMBER(4)    Y                上级编号    
  8. HIREDATE DATE         Y                雇佣日期    
  9. SAL      NUMBER(7,2)  Y                薪金       
  10. COMM     NUMBER(7,2)  Y                佣金       
  11. DEPTNO   NUMBER(2)    Y                所在部门编号  
  12. --提示:工资 = 薪金 + 佣金 

scott.dept部门表

  1. SQL> DESC SCOTT.DEPT;  
  2. Name   Type         Nullable Default Comments   
  3. ------ ------------ -------- ------- --------   
  4. DEPTNO NUMBER(3)                     部门编号    
  5. DNAME  VARCHAR2(14) Y                部门名称    
  6. LOC    VARCHAR2(13) Y                地点  

scott.emp表的现有数据如下:

  1. SQL> SELECT * FROM SCOTT.EMP;  
  2.    
  3. EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO  
  4. ----- ---------- --------- ----- ----------- --------- --------- ------  
  5.  7369 SMITH      CLERK      7902 1980-12-17     800.00               20  
  6.  7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30  
  7.  7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30  
  8.  7566 JONES      MANAGER    7839 1981-4-2      2975.00               20  
  9.  7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30  
  10.  7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30  
  11.  7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10  
  12.  7788 SCOTT      ANALYST    7566 1987-4-19     4000.00               20  
  13.  7839 KING       PRESIDENT       1981-11-17    5000.00               10  
  14.  7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30  
  15.  7876 ADAMS      CLERK      7788 1987-5-23     1100.00               20  
  16.  7900 JAMES      CLERK      7698 1981-12-3      950.00               30  
  17.  7902 FORD       ANALYST    7566 1981-12-3     3000.00               20  
  18.  7934 MILLER     CLERK      7782 1982-1-23     1300.00               10  
  19.   102 EricHu     Developer  1455 2011-5-26 1   5500.00     14.00     10  
  20.   104 huyong     PM         1455 2011-5-26 1   5500.00     14.00     10  
  21.   105 WANGJING   Developer  1455 2011-5-26 1   5500.00     14.00     10  
  22.    
  23. 17 rows selected  

Scott.dept表的现有数据如下:

  1. SQL> SELECT * FROM SCOTT.DEPT;  
  2.    
  3. DEPTNO DNAME          LOC  
  4. ------ -------------- -------------  
  5.    110 信息科         海口  
  6.     10 ACCOUNTING     NEW YORK  
  7.     20 RESEARCH       DALLAS  
  8.     30 SALES          CHICAGO  
  9.     40 OPERATIONS     BOSTON  
  10.     50 50abc          50def  
  11.     60 Developer      HaiKou  
  12.    
  13. rows selected  

用SQL完成以下问题列表:

  • 让SELECT 语句的输出结果为
    1. SELECT * FROM SALGRADE;  
    2. SELECT * FROM BONUS;  
    3. SELECT * FROM EMP;  
    4. SELECT * FROM DEPT;  
    5. ……

    列出当前用户有多少张数据表,结果集中存在多少条记录。 

  • 判断SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱错,为什么?
  • 精彩图集

    赞助商链接