自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle SQL:經(jīng)典查詢練手第二篇

數(shù)據(jù)庫(kù) Oracle
本文與大家共同討論與分享ORACLE SQL的一些常用經(jīng)典查詢,歡迎大家補(bǔ)充,同時(shí)你認(rèn)為有那些經(jīng)典的也可分享出來(lái)。在本文中,對(duì)每一個(gè)問(wèn)題,你要是認(rèn)為有什么更好的解決方法也歡迎你及時(shí)提出。交流與分享才能共同進(jìn)步嘛,感謝!

本文與大家共同討論與分享ORACLE SQL的一些常用經(jīng)典查詢,歡迎大家補(bǔ)充,同時(shí)你認(rèn)為有那些經(jīng)典的也可分享出來(lái)。在本文中,對(duì)每一個(gè)問(wèn)題,你要是認(rèn)為有什么更好的解決方法也歡迎你及時(shí)提出。交流與分享才能共同進(jìn)步嘛,感謝!

接上一篇Oracle SQL:經(jīng)典查詢練手第一篇

本篇相對(duì)上篇來(lái)說(shuō)比較簡(jiǎn)單,如果你對(duì)本篇的各測(cè)試做得不稱心如意的話,我想你是時(shí)候給自己充下電了!

本文使用的實(shí)例表結(jié)構(gòu)與表的數(shù)據(jù)如下:

scott.emp員工表結(jié)構(gòu)如下:

  1. SQL> DESC SCOTT.EMP;  
  2. Name     Type         Nullable Default Comments   
  3. -------- ------------ -------- ------- --------   
  4. EMPNO    NUMBER(4)                     員工編號(hào)    
  5. ENAME    VARCHAR2(10) Y                員工姓名    
  6. JOB      VARCHAR2(9)  Y                職位       
  7. MGR      NUMBER(4)    Y                上級(jí)編號(hào)    
  8. HIREDATE DATE         Y                雇傭日期    
  9. SAL      NUMBER(7,2)  Y                薪金       
  10. COMM     NUMBER(7,2)  Y                傭金       
  11. DEPTNO   NUMBER(2)    Y                所在部門(mén)編號(hào)  
  12. --提示:工資 = 薪金 + 傭金 

scott.dept部門(mén)表

  1. SQL> DESC SCOTT.DEPT;  
  2. Name   Type         Nullable Default Comments   
  3. ------ ------------ -------- ------- --------   
  4. DEPTNO NUMBER(3)                     部門(mén)編號(hào)    
  5. DNAME  VARCHAR2(14) Y                部門(mén)名稱    
  6. LOC    VARCHAR2(13) Y                地點(diǎn)  

scott.emp表的現(xiàn)有數(shù)據(jù)如下:

  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表的現(xiàn)有數(shù)據(jù)如下:

  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完成以下問(wèn)題列表:

  1. 找出EMP表中的姓名(ENAME)第三個(gè)字母是A 的員工姓名。
  2. 找出EMP表員工名字中含有A 和N的員工姓名。
  3. 找出所有有傭金的員工,列出姓名、工資、傭金,顯示結(jié)果按工資從小到大,傭金從大到小。
  4. 列出部門(mén)編號(hào)為20的所有職位。
  5. 列出不屬于SALES 的部門(mén)。
  6. 顯示工資不在1000 到1500 之間的員工信息:名字、工資,按工資從大到小排序。
  7. 顯示職位為MANAGER 和SALESMAN,年薪在15000 和20000 之間的員工的信息:名字、職位、年薪。
  8. 說(shuō)明以下兩條SQL語(yǔ)句的輸出結(jié)果:
    1. SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;  
    2. SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL
  9. 讓SELECT 語(yǔ)句的輸出結(jié)果為
    1. SELECT * FROM SALGRADE;  
    2. SELECT * FROM BONUS;  
    3. SELECT * FROM EMP;  
    4. SELECT * FROM DEPT;  
    5. ……

    列出當(dāng)前用戶有多少?gòu)垟?shù)據(jù)表,結(jié)果集中存在多少條記錄。 

  10. 判斷SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱錯(cuò),為什么?

#p#

各試題解答如下(歡迎大家指出不同的方法或建議?。?/p>

  1. --------1. 找出EMP表中的姓名(ENAME)第三個(gè)字母是A 的員工姓名。---------  
  2. SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '__A%';  
  3.    
  4. ENAME  
  5. ----------  
  6. ADAMS  
  7. BLAKE  
  8. CLARK 
  1. -------2. 找出EMP表員工名字中含有A 和N的員工姓名。----------  
  2. SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%' AND ENAME LIKE '%N%';  
  3.    
  4. ENAME  
  5. ----------  
  6. ALLEN  
  7. MARTIN  
  8. WANGJING  
  9. --------或--------  
  10. SQL> SELECT ENAME FROM SCOTT.EMP WHERE ENAME LIKE '%A%N%';  
  11.    
  12. ENAME  
  13. ----------  
  14. ALLEN  
  15. MARTIN  
  16. WANGJING 
  1. /*--------3. 找出所有有傭金的員工,列出姓名、工資、傭金,顯示結(jié)果按工資從小到大,  
  2. 傭金從大到小。----------*/  
  3. SQL> SELECT ENAME,SAL + COMM AS WAGE,COMM  
  4.   2  FROM SCOTT.EMP  
  5.   3  ORDER BY WAGE,COMM DESC;  
  6.    
  7. ENAME            WAGE      COMM  
  8. ---------- ---------- ---------  
  9. TURNER           1500      0.00  
  10. WARD             1750    500.00  
  11. ALLEN            1900    300.00  
  12. MARTIN           2650   1400.00  
  13. EricHu           5514     14.00  
  14. WANGJING         5514     14.00  
  15. huyong           5514     14.00  
  16. SMITH                   
  17. JONES                   
  18. JAMES                   
  19. MILLER                  
  20. FORD                    
  21. ADAMS                   
  22. BLAKE                   
  23. CLARK                   
  24. SCOTT                   
  25. KING                    
  26.    
  27. 17 rows selected 
  1. -------4. 列出部門(mén)編號(hào)為20的所有職位。----------  
  2. SQL> SELECT DISTINCT JOB FROM EMP WHERE DEPTNO = 20;  
  3.    
  4. JOB  
  5. ---------  
  6. ANALYST  
  7. CLERK  
  8. MANAGER 
  1. -------5. 列出不屬于SALES 的部門(mén)。----------  
  2. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME <> 'SALES';  
  3.    
  4. DEPTNO DNAME          LOC  
  5. ------ -------------- -------------  
  6.     10 ACCOUNTING     NEW YORK  
  7.     20 RESEARCH       DALLAS  
  8.     40 OPERATIONS     BOSTON  
  9.     50 50abc          50def  
  10.     60 Developer      HaiKou  
  11.    110 信息科         ??? 
  12.    
  13. rows selected  
  14.  
  15. --或者:  
  16. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME != 'SALES';  
  17. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT IN('SALES');  
  18. SQL> SELECT DISTINCT * FROM SCOTT.DEPT WHERE DNAME NOT LIKE 'SALES'
  1. ---6. 顯示工資不在1000 到1500 之間的員工信息:名字、工資,按工資從大到小排序。---------  
  2. SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP  
  3.   2  WHERE SAL + COMM NOT BETWEEN 1000 AND 1500  
  4.   3  ORDER BY WAGE DESC;  
  5.    
  6. ENAME            WAGE  
  7. ---------- ----------  
  8. EricHu           5514  
  9. huyong           5514  
  10. WANGJING         5514  
  11. MARTIN           2650  
  12. ALLEN            1900  
  13. WARD             1750  
  14.    
  15. rows selected  
  16. --或者  
  17. SQL> SELECT ENAME,SAL + COMM AS WAGE FROM SCOTT.EMP  
  18.   2  WHERE SAL + COMM < 1000 OR SAL + COMM > 1500  
  19.   3  ORDER BY WAGE DESC;  
  20.    
  21. ENAME            WAGE  
  22. ---------- ----------  
  23. EricHu           5514  
  24. huyong           5514  
  25. WANGJING         5514  
  26. MARTIN           2650  
  27. ALLEN            1900  
  28. WARD             1750  
  29.    
  30. rows selected 

#p#
 

  1. /*----- 7. 顯示職位為MANAGER 和SALESMAN,年薪在15000 和20000 之間的員工的信息:名字、職位、年薪。----------*/  
  2. SQL> SELECT ENAME 姓名,JOB 職位,(SAL + COMM) * 12 AS 年薪  
  3.   2  FROM SCOTT.EMP  
  4.   3  WHERE (SAL + COMM) * 12 BETWEEN 15000 AND 20000  
  5.   4  AND JOB IN('MANAGER','SALESMAN');  
  6.    
  7. 姓名       職位              年薪  
  8. ---------- --------- ----------  
  9. TURNER     SALESMAN       18000 
  1. /*----- 8. 說(shuō)明以下兩條SQL語(yǔ)句的輸出結(jié)果:  
  2.     SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;  
  3.     SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;  
  4. ----------*/  
  5. SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM IS NULL;  
  6.    
  7. EMPNO      COMM  
  8. ----- ---------  
  9.  7369   
  10.  7566   
  11.  7698   
  12.  7782   
  13.  7788   
  14.  7839   
  15.  7876   
  16.  7900   
  17.  7902   
  18.  7934   
  19.    
  20. 10 rows selected  
  21.  
  22. ---------------------------------------------------------------  
  23. SQL> SELECT EMPNO,COMM FROM EMP WHERE COMM = NULL;  
  24.    
  25. EMPNO      COMM  
  26. ----- ---------  
  27.  
  28. --說(shuō)明:IS NULL是判斷某個(gè)字段是否為空,為空并不等價(jià)于為空字符串或?yàn)閿?shù)字0;  
  29. --而 =NULL 是判斷某個(gè)值是否等于 NULL,NULL = NULL和NULL <> NULL都為 FALSE。 

 

  1. ---10. 語(yǔ)句SELECT ENAME,SAL FROM EMP WHERE SAL > '1500'是否抱錯(cuò)?---------  
  2. SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > '1500';  
  3.    
  4. ENAME            SAL  
  5. ---------- ---------  
  6. ALLEN        1600.00  
  7. JONES        2975.00  
  8. BLAKE        2850.00  
  9. CLARK        2450.00  
  10. SCOTT        4000.00  
  11. KING         5000.00  
  12. FORD         3000.00  
  13. EricHu       5500.00  
  14. huyong       5500.00  
  15. WANGJING     5500.00  
  16.    
  17. 10 rows selected  
  18.    
  19. SQL> SELECT ENAME,SAL FROM EMP WHERE SAL > 1500;  
  20.    
  21. ENAME            SAL  
  22. ---------- ---------  
  23. ALLEN        1600.00  
  24. JONES        2975.00  
  25. BLAKE        2850.00  
  26. CLARK        2450.00  
  27. SCOTT        4000.00  
  28. KING         5000.00  
  29. FORD         3000.00  
  30. EricHu       5500.00  
  31. huyong       5500.00  
  32. WANGJING     5500.00  
  33.    
  34. 10 rows selected  
  35. --說(shuō)明不會(huì)抱錯(cuò),這兒存在隱式數(shù)據(jù)類型的。  
  1. /*-----9. 讓SELECT 語(yǔ)句的輸出結(jié)果為  
  2.     SELECT * FROM SALGRADE;  
  3. SELECT * FROM BONUS;  
  4. SELECT * FROM EMP;  
  5. SELECT * FROM DEPT;  
  6. ……  
  7. 列出當(dāng)前用戶有多少?gòu)垟?shù)據(jù)表,結(jié)果集中存在多少條記錄。  
  8. ----------*/  
  9.  
  10. SQL> SELECT 'SELECT * FROM '||TABLE_NAME||';' FROM USER_TABLES;  
  11.    
  12. 'SELECT*FROM'||TABLE_NAME||';' 
  13. ---------------------------------------------  
  14. SELECT * FROM BONUS;  
  15. SELECT * FROM EMP;  
  16. SELECT * FROM DEPT;  
  17. --......等等,在此不列出。 

 

 

原文鏈接:http://www.cnblogs.com/huyong/archive/2011/06/16/2082581.html

【編輯推薦】

  1. PL/SQL開(kāi)發(fā)中動(dòng)態(tài)SQL的使用與過(guò)程分頁(yè)
  2. 詳解Oracle的幾種分頁(yè)查詢語(yǔ)句
  3. Oracle分頁(yè)小談
  4. 簡(jiǎn)單說(shuō)說(shuō)Oracle分區(qū)
  5. Oracle數(shù)據(jù)庫(kù)日常維護(hù)知識(shí)總結(jié)

 

責(zé)任編輯:艾婧 來(lái)源: EricHu's Tech Space
相關(guān)推薦

2011-06-23 10:25:38

Oracle

2011-06-22 13:26:37

Oracle

2011-06-27 14:00:52

Oracle

2011-06-21 09:14:01

Oracle查詢

2014-03-28 13:30:36

2022-08-02 10:26:09

網(wǎng)絡(luò)層網(wǎng)絡(luò)網(wǎng)絡(luò)協(xié)議

2017-04-10 14:46:29

AndroidGradleBuild.gradl

2011-03-14 16:05:17

2021-07-21 15:33:03

鴻蒙HarmonyOS應(yīng)用

2021-07-10 07:39:38

Node.js C++V8

2019-11-25 09:45:27

IBMIBM Cloud P多云

2019-11-26 16:31:22

IBM

2012-11-27 13:05:32

2019-11-06 11:25:48

IBMIBM Cloud P神州數(shù)碼

2019-07-31 12:34:23

數(shù)字化轉(zhuǎn)型云計(jì)算架構(gòu)

2021-01-26 05:33:07

排序算法快速

2010-10-27 13:25:33

Oracle查詢

2010-09-26 17:09:05

SQL語(yǔ)句

2011-07-11 16:10:38

SQL移植Oracle數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)