版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用數(shù)據(jù)查詢創(chuàng)建采集任務(wù)01多表查詢01目錄CONTENTS多表查詢01SELECT的查詢對(duì)象由FROM子句指定,其格式為:FROM表名1[[AS]別名1][,表名2[[AS]別名2]]…/*查詢表*/|JOIN子句 /*連接表*/引用一個(gè)表:可以用兩種方式引用一個(gè)表,第一種方式是使用USE語(yǔ)句讓一個(gè)數(shù)據(jù)庫(kù)成為當(dāng)前數(shù)據(jù)庫(kù),在這種情況下,如果在FROM子句中指定表名,則該表應(yīng)該屬于當(dāng)前數(shù)據(jù)庫(kù)。第二種方式是指定的時(shí)候在表名前帶上表所屬數(shù)據(jù)庫(kù)的名字。例如,假設(shè)當(dāng)前數(shù)據(jù)庫(kù)是db1,現(xiàn)在要顯示數(shù)據(jù)庫(kù)db2里的表tb的內(nèi)容,使用如下語(yǔ)句:SELECT*FROMdb2.tb;當(dāng)然,在SELECT關(guān)鍵字后指定列名的時(shí)候也可以在列名前帶上所屬數(shù)據(jù)庫(kù)和表的名字,但是一般來(lái)說(shuō),如果選擇的字段在各表中是唯一的,就沒(méi)有必要去特別指定。多表查詢多表查詢【例】從Members表中檢索出所有客戶的信息,并使用表別名Users。
SELECT*FROMMembersASUsers;引用多個(gè)表:如果要在不同表中查詢數(shù)據(jù),則必須在FROM子句中指定多個(gè)表。指定多個(gè)表時(shí)就要使用到連接。當(dāng)不同列的數(shù)據(jù)組合到一個(gè)表中叫做表的連接?!纠坎檎褺ookstore數(shù)據(jù)庫(kù)中客戶訂購(gòu)的圖書書名,訂購(gòu)冊(cè)數(shù)和訂購(gòu)時(shí)間。SELECTBook.書名,Sell.訂購(gòu)冊(cè)數(shù),Sell.訂購(gòu)時(shí)間
FROMBook,SellWHEREBook.圖書編號(hào)=Sell.圖書編號(hào);多表查詢當(dāng)數(shù)據(jù)查詢涉及到多張表格時(shí),要將多張表格的數(shù)據(jù)連接起來(lái)組成一張表格,連接的方式有多種。全連接全連接產(chǎn)生的新表是每個(gè)表的每行都與其他表中的每行交叉以產(chǎn)生所有可能的組合,列包含了所有表中出現(xiàn)的列,也就是笛卡兒積。全連接可能得到的行數(shù)為每個(gè)表中行數(shù)之積。如表A有3行,表B有2行,表A和B全連接后得到6行(3x2=6)的表T1T2T3T4T51A13M6F20N2BT1T2T3T4T51A13M6F13M2B13M1A20N6F20N2B20M表A和B全連接后得到如下6行(3x2=6)的表:表A表B多表查詢T1T2T3T4T51A13M2B20NFROM子句各個(gè)表用逗號(hào)分隔,這樣就指定了全連接。全連接潛在地產(chǎn)生數(shù)量非常大的行,因?yàn)榭赡艿玫降男袛?shù)為每個(gè)表中行數(shù)之積。在這樣的情形下,通常要使用WHERE子句設(shè)定條件來(lái)將結(jié)果集減少為易于管理的大小,這樣的連接即為等值連接。若表A和B進(jìn)行等值連接(T1=T3),則如下表所示,只有兩行。多表查詢【例】查找Bookstore數(shù)據(jù)庫(kù)中客戶訂購(gòu)的圖書書名,訂購(gòu)冊(cè)數(shù)和訂購(gòu)時(shí)間。
SELECTBook.書名,Sell.訂購(gòu)冊(cè)數(shù),Sell.訂購(gòu)時(shí)間
FROMBook,SellWHEREBook.圖書編號(hào)=Sell.圖書編號(hào);
多表查詢多表查詢JOIN連接第二種方式是使用JOIN關(guān)鍵字的連接,語(yǔ)法格式如下:
表名1INNERJOIN表名2ON條件|USING(列名)多表查詢(1)內(nèi)連接:指定了INNER關(guān)鍵字的連接是內(nèi)連接?!纠坎檎褺ookstore數(shù)據(jù)庫(kù)中客戶訂購(gòu)的圖書書名,訂購(gòu)冊(cè)數(shù)和訂購(gòu)時(shí)間??梢允褂靡韵抡Z(yǔ)句:SELECTBook.書名,Sell.訂購(gòu)冊(cè)數(shù),Sell.訂購(gòu)時(shí)間
FROMBookinnerjoinSellONBook.圖書編號(hào)=Sell.圖書編號(hào);該語(yǔ)句根據(jù)ON關(guān)鍵字后面的連接條件,合并兩個(gè)表,返回滿足條件的行。內(nèi)連接是系統(tǒng)默認(rèn)的,可以省略INNER關(guān)鍵字。使用內(nèi)連接后,F(xiàn)ROM子句中ON條件主要用來(lái)連接表,其他并不屬于連接表的條件可以使用WHERE子句來(lái)指定?!纠坑肑OIN關(guān)鍵字表達(dá)下列查詢:查找購(gòu)買了“網(wǎng)頁(yè)程序設(shè)計(jì)”圖書信息。SELECT書名,訂購(gòu)冊(cè)數(shù)FROMBookJOINSellONBook.圖書編號(hào)=Sell.圖書編號(hào)
WHERE書名='網(wǎng)頁(yè)程序設(shè)計(jì)';多表查詢【例】用JOIN關(guān)鍵字表達(dá)下列查詢:查找訂購(gòu)數(shù)量大于5本圖書和會(huì)員姓名和訂購(gòu)冊(cè)數(shù)。SELECT會(huì)員姓名,訂購(gòu)冊(cè)數(shù)
FROMSellJOINMembersONSell.用戶號(hào)=Members.用戶號(hào)
WHERE訂購(gòu)冊(cè)數(shù)>5;多表查詢內(nèi)連接還可以用于多個(gè)表的連接?!纠坑肑OIN關(guān)鍵字表達(dá)下列查詢:查找購(gòu)買了“網(wǎng)頁(yè)程序設(shè)計(jì)”且訂購(gòu)數(shù)量大于5本的圖書和會(huì)員姓名和訂購(gòu)冊(cè)數(shù)。SELECTBook.圖書編號(hào),會(huì)員姓名,書名,訂購(gòu)冊(cè)數(shù)
FROMSellJOINBookONBook.圖書編號(hào)=Sell.圖書編號(hào)
JOINMembersONSell.身份證號(hào)=Members.身份證號(hào)
WHERE書名='網(wǎng)頁(yè)程序設(shè)計(jì)'AND訂購(gòu)冊(cè)數(shù)>5;多表查詢作為特例,可以將一個(gè)表與它自身進(jìn)行連接,稱為自連接。若要在一個(gè)表中查找具有相同列值的行,則可以使用自連接。使用自連接時(shí)需為表指定兩個(gè)別名,且對(duì)所有列的引用均要用別名限定?!纠坎檎褺ookStore數(shù)據(jù)庫(kù)中訂單不同、圖書編號(hào)相同的圖書的訂單號(hào)、圖書編號(hào)和訂購(gòu)冊(cè)數(shù)。
SELECTa.訂單號(hào),a.圖書編號(hào),a.訂購(gòu)冊(cè)數(shù)
FROMSellASaJOINSellASbONa.圖書編號(hào)=b.圖書編號(hào)wherea.訂單號(hào)!=b.訂單號(hào);多表查詢?nèi)绻B接的表中有列名相同,并且連接的條件就是列名相等,那么ON條件也可以換成USING子句。USING(列名)子句用于為一系列的列進(jìn)行命名。這些列必須同時(shí)在兩個(gè)表中存在。其中列名為兩表中相同的列名?!纠坎檎襇embers表中所有訂購(gòu)過(guò)圖書的用戶的姓名。
SELECTDistinct姓名FROMMembersJOINSellUSING(用戶號(hào));
多表查詢上例的語(yǔ)句與下列語(yǔ)句等價(jià):
SELECTDistinct會(huì)員姓名
FROMMembersJOINSellONMembers.用戶號(hào)=Sell.用戶號(hào);多表查詢多表查詢指定了OUTER關(guān)鍵字的連接為外連接。外連接包括:左外連接(LEFTOUTERJOIN):
結(jié)果表中除了匹配行外,還包括左表有的但右表中不匹配的行,對(duì)于這樣的行,從右表被選擇的列設(shè)置為NULL。右外連接(RIGHTOUTERJOIN):
結(jié)果表中除了匹配行外,還包
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年類烏齊縣幼兒園教師招教考試備考題庫(kù)附答案解析
- 2025年西安電力機(jī)械制造公司機(jī)電學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(奪冠)
- 2025年貴州城市職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案解析
- 2025年邢臺(tái)醫(yī)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2025年重慶公共運(yùn)輸職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬測(cè)試卷附答案解析
- 2025年重慶理工職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(奪冠)
- 2025年錫林郭勒職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析
- 2025年長(zhǎng)春市建筑職工業(yè)余大學(xué)馬克思主義基本原理概論期末考試模擬題帶答案解析
- 2025年長(zhǎng)沙科技學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(奪冠)
- 2025年青海理工學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué) 期末復(fù)習(xí)講義
- 零售行業(yè)的店面管理培訓(xùn)資料
- 2023年初級(jí)經(jīng)濟(jì)師《初級(jí)人力資源專業(yè)知識(shí)與實(shí)務(wù)》歷年真題匯編(共270題)
- 培訓(xùn)課件電氣接地保護(hù)培訓(xùn)課件
- 公民健康素養(yǎng)知識(shí)講座課件
- 污水管網(wǎng)工程監(jiān)理月報(bào)
- 安徽涵豐科技有限公司年產(chǎn)6000噸磷酸酯阻燃劑DOPO、4800噸磷酸酯阻燃劑DOPO衍生品、12000噸副產(chǎn)品鹽酸、38000噸聚合氯化鋁、20000噸固化劑項(xiàng)目環(huán)境影響報(bào)告書
- 銷軸連接(-自編)
- GB/T 17215.322-2008交流電測(cè)量設(shè)備特殊要求第22部分:靜止式有功電能表(0.2S級(jí)和0.5S級(jí))
- GB/T 15623.2-2003液壓傳動(dòng)電調(diào)制液壓控制閥第2部分:三通方向流量控制閥試驗(yàn)方法
- 英語(yǔ)音標(biāo)拼讀練習(xí)
評(píng)論
0/150
提交評(píng)論