第9章子查詢_第1頁
第9章子查詢_第2頁
第9章子查詢_第3頁
第9章子查詢_第4頁
第9章子查詢_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第9 9章章 子查詢子查詢所謂子查詢,是指將一個所謂子查詢,是指將一個SELECT查詢語句塊嵌套在另查詢語句塊嵌套在另一個一個SQL查詢語句中。由于子查詢是嵌套在其他的查詢語句中。由于子查詢是嵌套在其他的SQL查詢查詢語句中,所以也稱之為嵌套查詢。在語句中,所以也稱之為嵌套查詢。在SQL語句中,子查詢需語句中,子查詢需要放在圓括號中,在執(zhí)行子查詢時,其執(zhí)行的過程是先查詢要放在圓括號中,在執(zhí)行子查詢時,其執(zhí)行的過程是先查詢出來子查詢的結果,然后將子查詢返回的結果作為其外層查出來子查詢的結果,然后將子查詢返回的結果作為其外層查詢的查詢條件。詢的查詢條件。子查詢根據(jù)返回的結果,可以分為單行子查詢,

2、多行子查詢根據(jù)返回的結果,可以分為單行子查詢,多行子查詢和多列子查詢;根據(jù)返回的數(shù)據(jù)與外層查詢之間的關子查詢和多列子查詢;根據(jù)返回的數(shù)據(jù)與外層查詢之間的關系,可以分為相關子查詢和不相關子查詢。子查詢除了應用系,可以分為相關子查詢和不相關子查詢。子查詢除了應用在查詢語句中,還可以應用在表格創(chuàng)建中用來實現(xiàn)數(shù)據(jù)表之在查詢語句中,還可以應用在表格創(chuàng)建中用來實現(xiàn)數(shù)據(jù)表之間的復制。應該說,子查詢在實際開發(fā)過程中有著非常廣泛間的復制。應該說,子查詢在實際開發(fā)過程中有著非常廣泛的應用。本章將全面介紹各種子查詢的作用以及它們的使用的應用。本章將全面介紹各種子查詢的作用以及它們的使用方法。方法。9.1 9.1 單

3、行子查詢單行子查詢在實際應用中,如果開發(fā)人員或者是用戶明確知道其在實際應用中,如果開發(fā)人員或者是用戶明確知道其SQL語句中使用的子查詢返回的結果是一行數(shù)據(jù)時,即子查語句中使用的子查詢返回的結果是一行數(shù)據(jù)時,即子查詢中返回的結果是一個值時,就可以使用算術比較運算符進詢中返回的結果是一個值時,就可以使用算術比較運算符進行子查詢的操作。其中,比較運算符包括行子查詢的操作。其中,比較運算符包括=(等于)、(等于)、=(大于等于)、大于等于)、(大于)、(大于)、(小于)、(小于)、!=(不等于)、(不等于)、 (不等于)、(不等于)、!(不大于)、(不大于)、!(SELECT salary FROM

4、T_teacherWHERE teaName = 趙偉趙偉)ORDER BY salary ASC9.2 9.2 多行子查詢多行子查詢所謂多行子查詢是指子查詢中返回的結果集中含有多所謂多行子查詢是指子查詢中返回的結果集中含有多行數(shù)據(jù)。當子查詢返回的是多行數(shù)據(jù)時,需要使用多行運算行數(shù)據(jù)。當子查詢返回的是多行數(shù)據(jù)時,需要使用多行運算符。多行運算符包括符。多行運算符包括IN、ANY、ALL等運算符。這一節(jié)就等運算符。這一節(jié)就來介紹多行運算符來介紹多行運算符IN、ANY、ALL在子查詢中的使用方法在子查詢中的使用方法。9.2.1 9.2.1 使用使用ININ運算符的子查詢運算符的子查詢IN運算符在運算

5、符在6.1.3小節(jié)中已經(jīng)講過。使用小節(jié)中已經(jīng)講過。使用IN運算符,可運算符,可以將滿足列表中滿足指定表達式的任何一個值都查詢出來。以將滿足列表中滿足指定表達式的任何一個值都查詢出來。在子查詢中使用在子查詢中使用IN 運算符,則與子查詢中查詢出來的結果運算符,則與子查詢中查詢出來的結果集中的任何一個值匹配的結果都會被查詢出來。因此集中的任何一個值匹配的結果都會被查詢出來。因此IN運算運算符可以用于多行子查詢中。符可以用于多行子查詢中。9.2.1 9.2.1 使用使用ININ運算符的子查詢運算符的子查詢例例9.2 查詢和教師姓名為毛翠的老師在同一個系的教師查詢和教師姓名為毛翠的老師在同一個系的教師

6、信息。信息。SELECT teaID,teaName,age,sex,dept,profession,salary FROM T_teacherWHERE dept IN(SELECT deptFROM T_teacherWHERE teaName = 毛翠毛翠)ORDER BY salary ASC9.2.1 9.2.1 使用使用ININ運算符的子查詢運算符的子查詢例例9.3 查詢和教師姓名為毛翠的老師不在同一個系的教查詢和教師姓名為毛翠的老師不在同一個系的教師信息。師信息。SELECT teaID,teaName,age,sex,dept,profession,salary FROM T_

7、teacherWHERE dept NOT IN(SELECT deptFROM T_teacherWHERE teaName = 毛翠毛翠)ORDER BY salary ASC9.2.2 9.2.2 使用使用ANYANY運算符的子查詢運算符的子查詢ANYANY運算符也用于多行子查詢中。運算符也用于多行子查詢中。ANYANY運算符的含義運算符的含義是只要與子查詢中的任何一個結果值匹配,其值都會被返回是只要與子查詢中的任何一個結果值匹配,其值都會被返回。ANYANY運算符在使用時需要和比較運算符(運算符在使用時需要和比較運算符(= =(等于)、(等于)、=(大于等于)、(大于等于)、= (大于

8、)、(大于)、 (小于)(小于)、!=!=(不等于)、(不等于)、 (不等于)放在一起使用。(不等于)放在一起使用。9.2.2 9.2.2 使用使用ANYANY運算符的子查詢運算符的子查詢9.2.2 9.2.2 使用使用ANYANY運算符的子查詢運算符的子查詢9.2.2 9.2.2 使用使用ANYANY運算符的子查詢運算符的子查詢例例9.4 查詢其他院系的教師中工資比任意一個數(shù)學系教查詢其他院系的教師中工資比任意一個數(shù)學系教師的工資都高的教師信息。師的工資都高的教師信息。SELECT teaID,teaName,age,sex,dept,profession,salary FROM T_tea

9、cherWHERE salary ANY(SELECT salary FROM T_teacherWHERE dept = 數(shù)學系數(shù)學系)AND dept != 數(shù)學系數(shù)學系ORDER BY salary ASC9.2.3 使用使用ALL運算符的子查詢運算符的子查詢ALL運算符也用于多行子查詢中。運算符也用于多行子查詢中。ALL運算符的含義運算符的含義是與子查詢中的所有的結果值匹配時,其值才會被返回。是與子查詢中的所有的結果值匹配時,其值才會被返回。ALL運算符在使用時需要和比較運算符(運算符在使用時需要和比較運算符(=(等于)、(等于)、=(大于等于)、大于等于)、(大于)、(大于)、(小于

10、)、(小于)、!=(不等于)、(不等于)、 (不等于)放在一起使用。(不等于)放在一起使用。9.2.3 使用使用ALL運算符的子查詢運算符的子查詢9.2.2 9.2.2 使用使用ANYANY運算符的子查詢運算符的子查詢例例9.5 查詢其他院系的教師中工資比物理系工資最少的查詢其他院系的教師中工資比物理系工資最少的教師還低的教師信息。教師還低的教師信息。SELECT teaID,teaName,age,sex,dept,profession,salary FROM T_teacherWHERE salary (SELECT salaryFROM T_teacherWHERE teaID = t1

11、81585)9.7 9.7 在在CREATE TABLECREATE TABLE語句中使用子查詢實語句中使用子查詢實現(xiàn)數(shù)據(jù)表的復制現(xiàn)數(shù)據(jù)表的復制 子查詢可以應用在子查詢可以應用在CREATE TABLE語句中,通過在語句中,通過在CREATE TABLE語句中使用子查詢可以在建立一張新的數(shù)語句中使用子查詢可以在建立一張新的數(shù)據(jù)表的同時將原有表中的數(shù)據(jù)插入到新建的數(shù)據(jù)表中,即實據(jù)表的同時將原有表中的數(shù)據(jù)插入到新建的數(shù)據(jù)表中,即實現(xiàn)數(shù)據(jù)表中數(shù)據(jù)的復制功能?,F(xiàn)數(shù)據(jù)表中數(shù)據(jù)的復制功能。CREATE TABLE語句使用子語句使用子查詢的語法格式如下:查詢的語法格式如下:CREATE TABLE 表名表名AS SELECT語句語句其中,其中,CREATE TABLE是創(chuàng)建表的關鍵字,表名表示是創(chuàng)建表的關鍵字,表名表示要創(chuàng)建新的數(shù)據(jù)表的名字,要創(chuàng)建新的數(shù)據(jù)表的名字,AS關鍵字后面跟的就是創(chuàng)建表關鍵字后面跟的就是創(chuàng)建表的子查詢語句。的子查詢語句。9.7 9.7 在在CREATE TABLECREATE TABLE語句中使用子查詢

溫馨提示

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

評論

0/150

提交評論