




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、5Copyright SysTop Corporation, 2005. All rights reserved.子查詢子查詢 6-2目標目標通過本章學習,您將可以通過本章學習,您將可以: 描述子查詢可以解決的問題描述子查詢可以解決的問題定義子查詢。定義子查詢。列句子查詢的類型。列句子查詢的類型。書寫單行子查詢和多行字查詢。書寫單行子查詢和多行字查詢。6-3使用子查詢解決問題使用子查詢解決問題誰的工資比誰的工資比 Abel 高高?誰的工資比誰的工資比 Abel 高高?Main Query:Abel的工資是多少的工資是多少?Subquery6-4子查詢語法子查詢語法子查詢子查詢 (內(nèi)查詢內(nèi)查詢)
2、 在主查詢之前一次執(zhí)行完成。在主查詢之前一次執(zhí)行完成。子查詢的結(jié)果被主查詢使用子查詢的結(jié)果被主查詢使用 (外查詢外查詢)。SELECTselect_listFROMtableWHEREexpr operator (SELECTselect_list FROMtable);6-5SELECT last_nameFROM employeesWHERE salary (SELECT salary FROM employees WHERE last_name = Abel);子查詢子查詢110006-6注意事項注意事項子查詢要包含在括號內(nèi)。子查詢要包含在括號內(nèi)。 將子查詢放在比較條件的右側(cè)。將子查詢放
3、在比較條件的右側(cè)。除非進行除非進行Top-N 分析,否則不要在子查詢中使用分析,否則不要在子查詢中使用ORDER BY 子句。子句。單行操作符對應(yīng)單行子查詢,多行操作符對應(yīng)多行子查單行操作符對應(yīng)單行子查詢,多行操作符對應(yīng)多行子查詢。詢。6-7子查詢類型子查詢類型Main querySubqueryreturnsST_CLERK 多行子查詢多行子查詢ST_CLERKSA_MANMain querySubqueryreturns 單行子查詢單行子查詢6-8單行子查詢單行子查詢只返回一行。只返回一行。使用單行比較操作符。使用單行比較操作符。Operator= = =MeaningEqual toGr
4、eater than Greater than or equal to Less than Less than or equal toNot equal to6-9 SELECT last_name, job_id, salaryFROM employeesWHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 141)AND salary (SELECT salary FROM employees WHERE employee_id = 143);執(zhí)行單行子查詢執(zhí)行單行子查詢ST_CLERK26006-10SELECT
5、 last_name, job_id, salaryFROM employeesWHERE salary = (SELECT MIN(salary) FROM employees);在子查詢中使用組函數(shù)在子查詢中使用組函數(shù)25006-11子查詢中的子查詢中的 HAVING 子句子句首先執(zhí)行子查詢。首先執(zhí)行子查詢。向主查詢中的向主查詢中的HAVING 子句返回結(jié)果。子句返回結(jié)果。SELECT department_id, MIN(salary)FROM employeesGROUP BY department_idHAVING MIN(salary) (SELECT MIN(salary) FR
6、OM employees WHERE department_id = 50);25006-12SELECT employee_id, last_nameFROM employeesWHERE salary = (SELECT MIN(salary) FROM employees GROUP BY department_id);非法使用子查詢非法使用子查詢ERROR at line 4:ORA-01427: single-row subquery returns more thanone rowSingle-row operator with multiple-row subquery6-13子
7、查詢中的空值問題子查詢中的空值問題no rows selectedSELECT last_name, job_idFROM employeesWHERE job_id = (SELECT job_id FROM employees WHERE last_name = Haas);Subquery returns no values6-14多行子查詢多行子查詢返回多行。返回多行。使用多行比較操作符。使用多行比較操作符。Operator IN ANY ALLMeaningEqual to any member in the listCompare value to each value retur
8、ned by the subquery Compare value to every value returned by the subquery 6-15在多行子查詢中使用在多行子查詢中使用 ANY 操作符操作符9000, 6000, 4200SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary ANY (SELECT salary FROM employees WHERE job_id = IT_PROG)AND job_id IT_PROG;6-16SELECT employee_id, last_
9、name, job_id, salaryFROM employeesWHERE salary ALL (SELECT salary FROM employees WHERE job_id = IT_PROG)AND job_id IT_PROG;在多行子查詢中使用在多行子查詢中使用 ALL 操作符操作符9000, 6000, 4200 6-17子查詢中的空值問題子查詢中的空值問題SELECT emp.last_nameFROM employees empWHERE emp.employee_id NOT IN (SELECT mgr.manager_id FROM employees mgr)
10、;6-18SELECT a.last_name, a.salary, a.department_id, b.salavgFROM employees a, (SELECT department_id, AVG(salary) salavg FROM employees GROUP BY department_id) bWHERE a.department_id = b.department_idAND a.salary b.salavg;在在 FROM 子句中使用子查詢子句中使用子查詢6-19EXISTS 操作符操作符EXISTS 操作符檢查在子查詢中是否存在滿足條件的行操作符檢查在子查詢中是
11、否存在滿足條件的行如果在子查詢中存在滿足條件的行如果在子查詢中存在滿足條件的行:不在子查詢中繼續(xù)查找不在子查詢中繼續(xù)查找條件返回條件返回 TRUE如果在子查詢中不存在滿足條件的行如果在子查詢中不存在滿足條件的行:條件返回條件返回 FALSE繼續(xù)在子查詢中查找繼續(xù)在子查詢中查找6-20SELECT employee_id, last_name, job_id, department_idFROM employees outerWHERE EXISTS ( SELECT X FROM employees WHERE manager_id = outer.employee_id);EXISTS 操作
12、符應(yīng)用舉例操作符應(yīng)用舉例6-21SELECT department_id, department_nameFROM departments dWHERE NOT EXISTS (SELECT X FROM employees WHERE department_id = d.department_id);NOT EXISTS 操作符應(yīng)用舉例操作符應(yīng)用舉例6-22相關(guān)更新相關(guān)更新使用相關(guān)子查詢依據(jù)一個表中的數(shù)據(jù)更新另一個表的數(shù)據(jù)使用相關(guān)子查詢依據(jù)一個表中的數(shù)據(jù)更新另一個表的數(shù)據(jù)UPDATE table1 alias1SET column = (SELECT expression FROM tabl
13、e2 alias2 WHERE alias1.column = alias2.column);6-23 DELETE FROM table1 alias1 WHERE column operator (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column);相關(guān)刪除相關(guān)刪除使用相關(guān)子查詢依據(jù)一個表中的數(shù)據(jù)刪除另一個表的數(shù)據(jù)使用相關(guān)子查詢依據(jù)一個表中的數(shù)據(jù)刪除另一個表的數(shù)據(jù)6-24DELETE FROM employees EWHERE employee_id = (SELECT employee_id FROM emp_history WHERE employee_id = E.employee_id);相關(guān)刪除應(yīng)用舉例相關(guān)刪除應(yīng)用舉例6-25總結(jié)總結(jié)通過本章學習,您已經(jīng)學會通過本章學習,您已經(jīng)學會: 在什么時候遇到什么問題應(yīng)該使用子查詢。在什么時候遇到什么問題應(yīng)該使用子查詢。在查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 6594.1-2025塑料聚苯乙烯(PS)模塑和擠出材料第1部分:命名系統(tǒng)和分類基礎(chǔ)
- 外墻擠塑板施工方案樣板
- 冷凝鍋爐 施工方案
- 橋梁拆除施工方案
- 滌綸施工方案
- TSIA 033-2022 單套制管理模式下電子檔案運行體系指南
- 二零二五年度房屋租賃押金及定金綜合服務(wù)合同
- 二零二五年度健康醫(yī)療產(chǎn)業(yè)業(yè)績提成合同
- 二零二五年度企業(yè)實習生勞動合同實習期薪資及職業(yè)發(fā)展保障計劃協(xié)議
- 二零二五年度醫(yī)院骨科與骨科醫(yī)療器械研發(fā)中心合作協(xié)議
- GB/T 2423.18-2021環(huán)境試驗第2部分:試驗方法試驗Kb:鹽霧,交變(氯化鈉溶液)
- 2021年湖北師范學院專升本C語言程序設(shè)計試卷
- CB/T 3136-1995船體建造精度標準
- 疫苗冰箱溫度記錄表
- 幼兒園媽媽的禮物x繪本課件
- 2023年海東地區(qū)互助土族自治縣人民醫(yī)院醫(yī)護人員招聘筆試模擬試題及答案解析
- 醫(yī)學病例匯報模板
- 福建省三明市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細
- 托物言志寫詩 知行合一做人
- 化工分離過程1緒論第1講ppt課件精選
- (完整版)形式發(fā)票模版(國際件通用)
評論
0/150
提交評論