日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
OracleSQL:經(jīng)典查詢練手第五篇

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

成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。

接上四篇:

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

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

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

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

本篇數(shù)據(jù)查詢屬于復(fù)雜業(yè)務(wù),難度比較高,請繼續(xù)努力,通過我為大家設(shè)立的這個(gè)系列,循序漸進(jìn),只要你對每一篇,每一個(gè)試題都實(shí)踐測試,認(rèn)真練習(xí)。我相信你對常用、經(jīng)典的、復(fù)雜的SQL已能熟能生巧,信手拈來!

本文使用ORACLE自帶的人力資源(HR)實(shí)例數(shù)據(jù),本文所用表結(jié)構(gòu)如下:

表名:REGIONS

序號 列名 數(shù)據(jù)類型 長度 小數(shù)位 標(biāo)識 主鍵 允許空 默認(rèn)值 說明
1 REGION_ID NUMBER          
2 REGION_NAME VARCHAR2 25          


表名:COUNTRIES

序號 列名 數(shù)據(jù)類型 長度 小數(shù)位 標(biāo)識 主鍵 允許空 默認(rèn)值 說明
1 COUNTRY_ID CHAR 2        
2 COUNTRY_NAME VARCHAR2 40          
3 REGION_ID NUMBER            

表名:LOCATIONS

序號 列名 數(shù)據(jù)類型 長度 小數(shù)位 標(biāo)識 主鍵 允許空 默認(rèn)值 說明
1 LOCATION_ID NUMBER 4 0      
2 STREET_ADDRESS VARCHAR2 40          
3 POSTAL_CODE VARCHAR2 12          
4 CITY VARCHAR2 30          
5 STATE_PROVINCE VARCHAR2 25          
6 COUNTRY_ID CHAR 2          

表名:DEPARTMENTS

序號 列名 數(shù)據(jù)類型 長度 小數(shù)位 標(biāo)識 主鍵 允許空 默認(rèn)值 說明
1 DEPARTMENT_ID NUMBER 4 0      
2 DEPARTMENT_NAME VARCHAR2 30          
3 MANAGER_ID NUMBER 6 0        
4 LOCATION_ID NUMBER 4 0        

表名:JOBS

序號 列名 數(shù)據(jù)類型 長度 小數(shù)位 標(biāo)識 主鍵 允許空 默認(rèn)值 說明
1 JOB_ID VARCHAR2 10        
2 JOB_TITLE VARCHAR2 35          
3 MIN_SALARY NUMBER 6 0        
4 MAX_SALARY NUMBER 6 0        

表名:EMPLOYEES

序號 列名 數(shù)據(jù)類型 長度 小數(shù)位 標(biāo)識 主鍵 允許空 默認(rèn)值 說明
1 EMPLOYEE_ID NUMBER 6 0      
2 FIRST_NAME VARCHAR2 20          
3 LAST_NAME VARCHAR2 25          
4 EMAIL VARCHAR2 25          
5 PHONE_NUMBER VARCHAR2 20          
6 HIRE_DATE DATE 7          
7 JOB_ID VARCHAR2 10          
8 SALARY NUMBER 8 2        
9 COMMISSION_PCT NUMBER 2 2        
10 MANAGER_ID NUMBER 6 0        
11 DEPARTMENT_ID NUMBER 4 0        

ER圖:

 
用SQL完成以下問題列表:

 
 
 
 
  1. 哪些部門的人數(shù)比90 號部門的人數(shù)多。  
  2. Den(FIRST_NAME)、Raphaely(LAST_NAME)的領(lǐng)導(dǎo)是誰(非關(guān)聯(lián)子查詢)。  
  3. Den(FIRST_NAME)、Raphaely(LAST_NAME) 領(lǐng)導(dǎo)誰(非關(guān)聯(lián)子查詢)。  
  4. Den(FIRST_NAME)、Raphaely(LAST_NAME) 的領(lǐng)導(dǎo)是誰(關(guān)聯(lián)子查詢)。  
  5. Den(FIRST_NAME)、Raphaely(LAST_NAME) 領(lǐng)導(dǎo)誰(關(guān)聯(lián)子查詢)。  
  6. 列出在同一部門共事,入職日期晚但工資高于其他同事的員工:名字、工資、入職日期(關(guān)聯(lián)子查詢)。  
  7. 哪些員工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)不在同一個(gè)部門(非關(guān)聯(lián)子查詢)。  
  8. 哪些員工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)不在同一個(gè)部門(關(guān)聯(lián)子查詢)。  
  9. Finance部門有哪些職位(非關(guān)聯(lián)子查詢)。  
  10. Finance部門有哪些職位(關(guān)聯(lián)子查詢)。  

#p#
 

 
 
 
 
  1. /*--------1、哪些部門的人數(shù)比90號部門的人數(shù)多。---------*/  
  2.  
  3. SQL> SELECT DEPARTMENT_ID,COUNT(*) FROM EMPLOYEES  
  4.    2  GROUP BY DEPARTMENT_ID  
  5.    3  HAVING COUNT(*) >  
  6.    4         (SELECT COUNT(*) FROM EMPLOYEES  
  7.    5          WHERE DEPARTMENT_ID = 90  
  8.    6         );  
  9.    
  10. DEPARTMENT_ID   COUNT(*)  
  11. ------------- ----------  
  12.            30          6  
  13.            50         45  
  14.            60          5  
  15.            80         34  
  16.           100          6  
  17.  
  18. /*-------2、Den(FIRST_NAME)、Raphaely(LAST_NAME)的  
  19. 領(lǐng)導(dǎo)是誰(非關(guān)聯(lián)子查詢)。---------*/  
  20.  
  21. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  22.    2  FROM EMPLOYEES  
  23.    3  WHERE EMPLOYEE_ID =   
  24.    4        (SELECT MANAGER_ID FROM EMPLOYEES  
  25.    5         WHERE FIRST_NAME = 'Den' 
  26.    6         AND   LAST_NAME  = 'Raphaely' 
  27.    7        );  
  28.    
  29. FIRST_NAME||''||LAST_NAME  
  30. ----------------------------------------------  
  31. Steven King  
  32.  
  33. /*-------3、Den(FIRST_NAME)、Raphaely(LAST_NAME)領(lǐng)導(dǎo)誰(非關(guān)聯(lián)子查詢)。---------*/  
  34.  
  35. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  36.    2  FROM EMPLOYEES  
  37.    3  WHERE MANAGER_ID IN 
  38.    4        (SELECT EMPLOYEE_ID FROM EMPLOYEES  
  39.    5         WHERE FIRST_NAME = 'Den' 
  40.    6         AND   LAST_NAME  = 'Raphaely' 
  41.    7        );  
  42.    
  43. FIRST_NAME||''||LAST_NAME  
  44. ----------------------------------------------  
  45. Alexander Khoo  
  46. Shelli Baida  
  47. Sigal Tobias  
  48. Guy Himuro  
  49. Karen Colmenares  
  50.  
  51. --或者  
  52.  
  53. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  54.    2  FROM EMPLOYEES  
  55.    3  WHERE MANAGER_ID =  
  56.    4        (SELECT EMPLOYEE_ID FROM EMPLOYEES  
  57.    5         WHERE FIRST_NAME = 'Den' 
  58.    6         AND   LAST_NAME  = 'Raphaely' 
  59.    7        );  
  60.    
  61. FIRST_NAME||''||LAST_NAME  
  62. ----------------------------------------------  
  63. Alexander Khoo  
  64. Shelli Baida  
  65. Sigal Tobias  
  66. Guy Himuro  
  67. Karen Colmenares  
  68.  
  69. /*-------4、Den(FIRST_NAME)、Raphaely(LAST_NAME)的領(lǐng)導(dǎo)是誰(關(guān)聯(lián)子查詢)。---------*/  
  70.  
  71. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  72.    2  FROM EMPLOYEES EMP1  
  73.    3  WHERE EXISTS (  
  74.    4        SELECT 1 FROM EMPLOYEES EMP2  
  75.    5        WHERE FIRST_NAME = 'Den' 
  76.    6        AND LAST_NAME  = 'Raphaely' 
  77.    7        AND EMP2.MANAGER_ID = EMP1.EMPLOYEE_ID);  
  78.    
  79. FIRST_NAME||''||LAST_NAME  
  80. ----------------------------------------------  
  81. Steven King  
  82.  
  83. /*-------5、Den(FIRST_NAME)、Raphaely(LAST_NAME)領(lǐng)導(dǎo)誰(關(guān)聯(lián)子查詢)。---------*/  
  84.  
  85. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  86.    2  FROM EMPLOYEES EMP1  
  87.    3  WHERE EXISTS (  
  88.    4        SELECT 1 FROM EMPLOYEES EMP2  
  89.    5        WHERE FIRST_NAME = 'Den' 
  90.    6        AND LAST_NAME  = 'Raphaely' 
  91.    7        AND EMP2.EMPLOYEE_ID = EMP1.MANAGER_ID);   
  92.  
  93. FIRST_NAME||''||LAST_NAME  
  94. ----------------------------------------------  
  95. Alexander Khoo  
  96. Shelli Baida  
  97. Sigal Tobias  
  98. Guy Himuro  
  99. Karen Colmenares 

#p#
 

 
 
 
 
  1. /*-------6、列出在同一部門共事,入職日期晚但工資高于其他同事的員工:  
  2. 名字、工資、入職日期(關(guān)聯(lián)子查詢)。---------*/  
  3.  
  4. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME AS 姓名,  
  5.    2          SALARY AS 工資,HIRE_DATE AS 入職日期  
  6.    3  FROM EMPLOYEES EMP1  
  7.    4  WHERE EXISTS (  
  8.    5        SELECT 1 FROM EMPLOYEES EMP2  
  9.    6        WHERE EMP2.DEPARTMENT_ID = EMP1.DEPARTMENT_ID  
  10.   7        AND   EMP1.HIRE_DATE > EMP2.HIRE_DATE  
  11.    8        AND   EMP1.SALARY    > EMP2.SALARY  
  12.   9        );  
  13.  
  14. 姓名                                                   工資 入職日期  
  15. ---------------------------------------------- ---------- -----------  
  16. Nancy Greenberg                                  12000.00 1994-8-17  
  17. Jose Manuel Urman                                 7800.00 1998-3-7  
  18. Shelli Baida                                      2900.00 1997-12-24  
  19. Adam Fripp                                        8200.00 1997-4-10  
  20. Matthew Weiss                                     8000.00 1996-7-18  
  21. Jennifer Dilly                                    3600.00 1997-8-13  
  22. Julia Dellinger                                   3400.00 1998-6-24  
  23. Laura Bissot                                      3300.00 1997-8-20  
  24. Kevin Mourgos                                     5800.00 1999-11-16  
  25. Shanta Vollman                                    6500.00 1997-10-10  
  26. Vance Jones                                       2800.00 1999-3-17  
  27. Anthony Cabrio                                    3000.00 1999-2-7  
  28. Girard Geoni                                      2800.00 2000-2-3  
  29. Douglas Grant                                     2600.00 2000-1-13  
  30. Donald OConnell                                   2600.00 1999-6-21  
  31. Randall Perkins                                   2500.00 1999-12-19  
  32. Martha Sullivan                                   2500.00 1999-6-21  
  33. Kevin Feeney                                      3000.00 1998-5-23  
  34. Alana Walsh                                       3100.00 1998-4-24  
  35. Samuel McCain                                     3200.00 1998-7-1  
  36. Timothy Gates                                     2900.00 1998-7-11  
  37. Jean Fleaur                                       3100.00 1998-2-23  
  38. Winston Taylor                                    3200.00 1998-1-24  
  39. Michael Rogers                                    2900.00 1998-8-26  
  40. Britney Everett                                   3900.00 1997-3-3  
  41. Kelly Chung                                       3800.00 1997-6-14  
  42. Alexis Bull                                       4100.00 1997-2-20  
  43. Randall Matos                                     2600.00 1998-3-15  
  44. John Seo                                          2700.00 1998-2-12  
  45. Stephen Stiles                                    3200.00 1997-10-26  
  46. Mozhe Atkinson                                    2800.00 1997-10-30  
  47. Irene Mikkilineni                                 2700.00 1998-9-28  
  48. Julia Nayer                                       3200.00 1997-7-16  
  49. Hazel Philtanker                                  2200.00 2000-2-6  
  50. Ki Gee                                            2400.00 1999-12-12  
  51. Steven Markle                                     2200.00 2000-3-8  
  52. Sarah Bell                                        4000.00 1996-2-4  
  53. Nandita Sarchand                                  4200.00 1996-1-27  
  54. Lisa Ozer                                        11500.00 1997-3-11  
  55. Clara Vishney                                    10500.00 1997-11-11  
  56. Eleni Zlotkey                                    10500.00 2000-1-29   
  57. Gerald Cambrault                                 11000.00 1999-10-15  
  58. Alberto Errazuriz                                12000.00 1997-3-10  
  59. Tayler Fox                                        9600.00 1998-1-24  
  60. Harrison Bloom                                   10000.00 1998-3-23  
  61. Danielle Greene                                   9500.00 1999-3-19  
  62. Charles Johnson                                   7211.00 2000-1-4  
  63. Mattea Marvins                                    7200.00 2000-1-24  
  64. Ellen Abel                                       11000.00 1996-5-11  
  65. Karen Partners                                   13500.00 1997-1-5  
  66. John Russell                                     14000.00 1996-10-1  
  67. Peter Tucker                                     10000.00 1997-1-30  
  68. David Bernstein                                   9500.00 1997-3-24  
  69. Jonathon Taylor                                   8600.00 1998-3-24  
  70. Alyssa Hutton                                     8800.00 1997-3-19  
  71. Peter Hall                                        9000.00 1997-8-20  
  72. Jack Livingston                                   8000.00 1998-4-23  
  73. Christopher Olsen                                 8000.00 1998-3-30  
  74. Elizabeth Bates                                   7300.00 1999-3-24  
  75. William Smith                                     7400.00 1999-2-23  
  76. Nanette Cambrault                                 7500.00 1998-12-9  
  77.    
  78. 61 rows selected  
  79.  
  80. /*-------7、哪些員工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)  
  81. 不在同一個(gè)部門(非關(guān)聯(lián)子查詢)。---------*/  
  82.  
  83. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  84.   2  FROM EMPLOYEES  
  85.    3  WHERE DEPARTMENT_ID <>  
  86.   4        (SELECT DEPARTMENT_ID FROM EMPLOYEES  
  87.    5         WHERE FIRST_NAME = 'Den' 
  88.   6         AND LAST_NAME  = 'Raphaely' 
  89.   7        );  
  90.    
  91. FIRST_NAME||''||LAST_NAME  
  92. ----------------------------------------------  
  93. Steven King  
  94. Neena Kochhar  
  95. Lex De Haan  
  96. Alexander Hunold  
  97. Bruce Ernst  
  98. David Austin  
  99. Valli Pataballa  
  100. --等等  
  101.  
  102. --或者  
  103.  
  104. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  105.    2  FROM EMPLOYEES  
  106.    3  WHERE DEPARTMENT_ID NOT IN 
  107.    4        (SELECT DEPARTMENT_ID FROM EMPLOYEES  
  108.    5         WHERE FIRST_NAME = 'Den' 
  109.    6         AND LAST_NAME  = 'Raphaely' 
  110.    7        );  
  111.  
  112. /*-------8、哪些員工跟Den(FIRST_NAME)、Raphaely(LAST_NAME)  
  113. 不在同一個(gè)部門(關(guān)聯(lián)子查詢)。---------*/  
  114.  
  115. SQL> SELECT FIRST_NAME || ' ' || LAST_NAME  
  116.    2  FROM EMPLOYEES EMP1  
  117.    3  WHERE NOT EXISTS (  
  118.    4        SELECT 1 FROM EMPLOYEES EMP2  
  119.    5        WHERE EMP1.DEPARTMENT_ID = EMP2.DEPARTMENT_ID  
  120.    6        AND EMP2.FIRST_NAME =  'Den' 
  121.    7        AND EMP2.LAST_NAME  =  'Raphaely');  
  122.    
  123. FIRST_NAME||''||LAST_NAME  
  124. ----------------------------------------------  
  125. Kimberely Grant 
  126. Lex De Haan  
  127. Neena Kochhar  
  128. Steven King  
  129. Pat Fay  
  130. Michael Hartstein  
  131. Diana Lorentz  
  132. Valli Pataballa  
  133. --等等  
  134.  
  135. /*-------9、Finance部門有哪些職位(非關(guān)聯(lián)子查詢)。---------*/  
  136.  
  137. SQL> SELECT DISTINCT JOB_ID FROM EMPLOYEES  
  138.    2  WHERE DEPARTMENT_ID = (  
  139.    3        SELECT DEPARTMENT_ID FROM DEPARTMENTS  
  140.    4        WHERE DEPARTMENT_NAME = 'Finance');  
  141.    
  142. JOB_ID  
  143. ----------  
  144. FI_ACCOUNT  
  145. FI_MGR  
  146.  
  147. --或者  
  148.  
  149. SQL> SELECT DISTINCT JOB_ID FROM EMPLOYEES  
  150.    2  WHERE DEPARTMENT_ID IN (  
  151.    3        SELECT DEPARTMENT_ID FROM DEPARTMENTS  
  152.    4        WHERE DEPARTMENT_NAME = 'Finance');  
  153.    
  154. JOB_ID  
  155. ----------  
  156. FI_ACCOUNT  
  157. FI_MGR  
  158.  
  159.  
  160. /*-------10、Finance部門有哪些職位(關(guān)聯(lián)子查詢)。---------*/  
  161. SQL> SELECT DISTINCT JOB_ID FROM EMPLOYEES  
  162.    2  WHERE EXISTS(  
  163.    3        SELECT 1 FROM DEPARTMENTS  
  164.    4        WHERE EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID  
  165.    5        AND DEPARTMENTS.DEPARTMENT_NAME = 'Finance');  
  166.    
  167. JOB_ID  
  168. ----------  
  169. FI_ACCOUNT  
  170. FI_MGR 

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

【編輯推薦】

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

新聞標(biāo)題:OracleSQL:經(jīng)典查詢練手第五篇
URL鏈接:http://www.dlmjj.cn/article/dhcohge.html