《sql教學(xué)課件》12.-高級子查詢_第1頁
《sql教學(xué)課件》12.-高級子查詢_第2頁
《sql教學(xué)課件》12.-高級子查詢_第3頁
《sql教學(xué)課件》12.-高級子查詢_第4頁
《sql教學(xué)課件》12.-高級子查詢_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、高級子查詢講師:佟剛新浪微博:尚硅谷-佟剛1ppt課件目標通過本章學(xué)習(xí),您將可以:書寫多列子查詢子查詢對空值的處理在 FROM 子句中使用子查詢在SQL中使用單列子查詢相關(guān)子查詢書寫相關(guān)子查詢使用子查詢更新和刪除數(shù)據(jù)使用 EXISTS 和 NOT EXISTS 操作符使用 WITH 子句2ppt課件子查詢子查詢是嵌套在 SQL 語句中的另一個SELECT 語句SELECT . FROM .WHERE .(SELECT . FROM . WHERE .)子查詢主查詢3ppt課件子查詢子查詢 (內(nèi)查詢) 在主查詢執(zhí)行之前執(zhí)行主查詢使用子查詢的結(jié)果 (外查詢)SELECTselect_listFRO

2、MtableWHEREexpr operator (SELECT select_list FROM table);4ppt課件SELECT last_nameFROM employeesWHERE salary (SELECT salary FROM employees WHERE employee_id = 149) ;子查詢應(yīng)用舉例105005ppt課件多列子查詢Main queryWHERE (MANAGER_ID, DEPARTMENT_ID) INSubquery100 90102 60124 50主查詢與子查詢返回的多個列進行比較6ppt課件列比較多列子查詢中的比較分為兩種: 成對

3、比較不成對比較7ppt課件成對比較舉例SELECTemployee_id, manager_id, department_idFROMemployeesWHERE (manager_id, department_id) IN (SELECT manager_id, department_id FROM employees WHERE employee_id IN (178,174)ANDemployee_id NOT IN (178,174);查詢和 178, 174 在同一個部門,且同一個 leader 的員工有哪些 ?8ppt課件查詢和 191 號員工同一月入職,在同一個部門的員工的信息查

4、詢和 105 號員工在同一個城市,且做同樣工作的員工信息成對比較練習(xí)9ppt課件不成對比較舉例SELECT employee_id, manager_id, department_idFROM employeesWHERE manager_id IN (SELECT manager_id FROM employees WHERE employee_id IN (174,178)AND department_id IN (SELECT department_id FROM employees WHERE employee_id IN (174, 178)ANDemployee_id NOT IN

5、(174, 178);10ppt課件不成對比較練習(xí)查詢和 166 號員工在同一個部門,且工作的城市在 Oxford 的員工的 last_name, job_id, salary查詢和 Fox 同年入職,且做 Sales Representative 工作的員工的 last_name, job_id, hire_date11ppt課件SELECT a.last_name, a.salary, a.department_id, b.salavgFROM employees a, (SELECT department_id, AVG(salary) salavg FROM employees GRO

6、UP BY department_id) bWHERE a.department_id = b.department_idAND a.salary b.salavg;在 FROM 子句中使用子查詢查詢工資比所在部門平均工資高的員工的 last_name, salary, department_id, salary12ppt課件相關(guān)子查詢 相關(guān)子查詢按照一行接一行的順序執(zhí)行,主查詢的每一行都執(zhí)行一次子查詢GET從主查詢中獲取候選列EXECUTE子查詢使用主查詢的數(shù)據(jù)USE如果滿足內(nèi)查詢的條件則返回該行13ppt課件相關(guān)子查詢 SELECT column1, column2, . FROM tab

7、le1 WHERE column1 operator (SELECT colum1, column2 FROM table2 WHERE expr1 = .expr2);outerouter子查詢中使用主查詢中的列14ppt課件SELECT last_name, salary, department_idFROM employees outerWHERE salary 相關(guān)子查詢舉例(SELECT AVG(salary) FROM employees WHERE department_id = outer.department_id) ;15ppt課件相關(guān)子查詢練習(xí)查詢比做同樣的工作的平均工資

8、高的員工的 employee_id, last_name, job_id查詢換過兩次工作以上的員工的 employee_id, last_name, job_id16ppt課件EXISTS 操作符EXISTS 操作符檢查在子查詢中是否存在滿足條件的行如果在子查詢中存在滿足條件的行:不在子查詢中繼續(xù)查找條件返回 TRUE如果在子查詢中不存在滿足條件的行:條件返回 FALSE繼續(xù)在子查詢中查找17ppt課件SELECT employee_id, last_name, job_id, department_idFROM employees outerWHERE EXISTS ( SELECT X F

9、ROM employees WHERE manager_id = outer.employee_id);EXISTS 操作符應(yīng)用舉例18ppt課件SELECT department_id, department_nameFROM departments dWHERE NOT EXISTS (SELECT X FROM employees WHERE department_id = d.department_id);NOT EXISTS 操作符應(yīng)用舉例IN適合于外表大而內(nèi)表小的情況;EXISTS適合于外表小而內(nèi)表大的情況。19ppt課件IN適合于外表大而內(nèi)表小的情況;EXISTS 適合于外表小而

10、內(nèi)表大的情況。是否存在是否滿足條件20ppt課件WITH 子句使用 WITH 子句, 可以避免在 SELECT 語句中重復(fù)書寫相同的語句塊WITH 子句將該子句中的語句塊執(zhí)行一次 并存儲到用戶的臨時表空間中使用 WITH 子句可以提高查詢效率21ppt課件WITH 子句應(yīng)用舉例WITH dept_costs AS ( SELECT d.department_name, SUM(e.salary) AS dept_total FROM employees e, departments d WHERE e.department_id = d.department_id GROUP BY d.department_name),avg_cost AS ( SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROM dept_costs)SELECT * FROM dept_costs WHERE dept_total (SELECT dept_avg FROM avg_co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論