多表連接查詢多表連接查詢是通過各個表之間的共同列的相關(guān)性來_第1頁
多表連接查詢多表連接查詢是通過各個表之間的共同列的相關(guān)性來_第2頁
多表連接查詢多表連接查詢是通過各個表之間的共同列的相關(guān)性來_第3頁
多表連接查詢多表連接查詢是通過各個表之間的共同列的相關(guān)性來_第4頁
多表連接查詢多表連接查詢是通過各個表之間的共同列的相關(guān)性來_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

在實際查詢中,很多情況下用戶所需要的數(shù)據(jù)并不是全部都在一個表或視圖中,而是存在于多個表或視圖中,這時就要使用多表連接查詢。多表連接查詢是通過各個表之間的共同列的相關(guān)性來查詢數(shù)據(jù)的。多表連接查詢首先要在這些表中建立連接,再在連接生成的結(jié)果集中進行篩選。多表連接查詢5.3多表查詢多表查詢的語法格式如下:SELECT表名.目標(biāo)列表達式[AS別名],…FROM左表名[AS別名]連接類型右表名[AS別名]ON連接條件[WHERE條件表達式];5.3多表查詢其中,連接類型以及運算符有以下幾種:CROSSJOIN交叉連接INNERJOIN或JOIN內(nèi)連接LEFTJOIN或LEFTOUTERJOIN左外連接RIGHTJOIN或RIGHTOUTERJOIN右外連接FULLJOIN或FULLOUTERJOIN完全連接5.3多表查詢

交叉連接就是將連接的兩個表的所有行進行組合,也就是將第一個表的所有行分別與第二個表的每個行連接形成一個新的數(shù)據(jù)行。連接后生成的結(jié)果集的數(shù)據(jù)行數(shù)等于兩個表的行數(shù)的乘積,列數(shù)等于兩個表的列數(shù)的和。5.3多表查詢其語法格式如下所示:SELECT列名列表FROM表名1CROSSJOIN表名2;5.3多表查詢

對course表和teacher表進行交叉連接,觀察連接后的結(jié)果。SELECT*FROMcourseCROSSJOINteacher;實例5-235.3多表查詢5.3多表查詢course表是5列4行的表,teacher表是5列5行的表。這兩張表進行交叉連接形成的結(jié)果表就是10列20行的表。但可以看出來,這張結(jié)果表是沒有實際意義的;注意

內(nèi)連接是指用比較運算符設(shè)置連接條件,只返回滿足連接條件的數(shù)據(jù)行,等于是將交叉連接生成的結(jié)果集按照連接條件進行篩選后形成的。5.3多表查詢內(nèi)連接的語法格式如下:

SELECT列名列表FROM表名1[INNER]JOIN表名2ON表AS.列名比較運算符表名2.列名;或者SELECT列名列表FROM表名1,表名2WHERE表名1.列名比較運算符表名2.列名;5.3多表查詢內(nèi)連接包括3種類型5.3多表查詢內(nèi)連接等值連接非等值連接自然連接

等值連接:在連接條件中使用等號(=DELETE來比較連接列的列值,其查詢結(jié)果中包含AS接UPDATE包括重復(fù)列。在等值連接中,兩個表的連接條件通DELETE.主鍵=表2.外鍵”的形式。1非等值連接:在連接條件中使用了除等號之外的比較運算符(>、<、>=、<=、!=)來比較連接列的列值。2自然連接:與等值連接相同,都是在連接條件中使用比較運算符,但結(jié)果集中不包括重復(fù)列。35.3多表查詢

查詢學(xué)生選課數(shù)據(jù)庫,輸出考試不及格學(xué)生的學(xué)號、姓名、課程號以及成績。SELECTs.sno,sname,cno,scoreFROMstudentinfoASsJOINelectiveASeONs.sno=e.snoWHEREscore<60;SELECTs.sno,sname,cno,scoreFROMstudentinfoASs,electiveASeWHEREs.sno=e.snoANDscore<60;或者5.3多表查詢實例5-245.3多表查詢5.3多表查詢

查詢學(xué)生選課數(shù)據(jù)庫,輸出考試不及格學(xué)生的學(xué)號、姓名、課程名以及成績。SELECTs.sno,sname,cname,scoreFROMstudentinfoASsJOINelectiveASeONs.sno=e.snoJOINcourseascONo=oWHEREscore<60;SELECTs.sno,sname,cname,scoreFROMstudentinfoASs,electiveASe,courseAScWHEREs.sno=e.snoANDo=oANDscore<60;或者實例5-25

外連接與內(nèi)連接不同,在查詢時所用的表有主從之分。使用外連接時,以主表中每行數(shù)據(jù)去匹配從表中的數(shù)據(jù)行,如果符合連接條件則返回到結(jié)果集中;如果沒有找到區(qū)配行,則在結(jié)果集中仍然保留主表的行,相對應(yīng)的從表中的列被填上NULL值。5.3多表查詢SELECT列名列表FROM表名1LEFT|RIGHT|FULLJOIN表名2ON表名1.列名比較運算符表名2.列名;外連接的語法格式如下:外連接只適用于兩個表的連接。5.3多表查詢注意外連接包括3種類型外連接左外連接左外連接左外連接5.3多表查詢左外連接:即左表為主表,連接關(guān)鍵字為LEFTJOIN。關(guān)鍵字左邊的表為左表,右邊的表為右表。將左表中的所有數(shù)據(jù)行與右表中的每行按連接條件進行匹配,結(jié)果集中包括左表中所有行。15.3多表查詢右外連接:即右表為主表,連接關(guān)鍵字為RIGHTJOIN。關(guān)鍵字右邊的表為右表,左邊的表為左表。將右表中的所有數(shù)據(jù)行與左表中的每行按連接條件進行匹配,結(jié)果集中包括右表中所有行。25.3多表查詢?nèi)膺B接:連接關(guān)鍵字為FULLJOIN。該連接查詢結(jié)果集中包括兩個連接表的所有行,左表中每一行在右表中有匹配數(shù)據(jù),則結(jié)果集中對應(yīng)的右表的列填入相應(yīng)數(shù)據(jù),否則填為NULL。35.3多表查詢

查詢查詢學(xué)生選課數(shù)據(jù)庫,輸出所有教師所教授的課程信息,沒有教授課程的教師也要列出。SELECT*FROMteacherAStLEFTJOINcourseAScONt.tno=c.ctno;5.3多表查詢實例5-26

自連接就是一個表的兩個副本之間的內(nèi)連接。同一個表名在FROM中出現(xiàn)兩次,故為了區(qū)別,必須對表指定不同的別名,語句中使用的列名前也要加上表的別名進行限定。5.3多表查詢

查詢和學(xué)號“11101002”在同一個班的學(xué)生的學(xué)號和姓名。SELECTs

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論