數(shù)據(jù)庫(kù)中多表連接_第1頁(yè)
數(shù)據(jù)庫(kù)中多表連接_第2頁(yè)
數(shù)據(jù)庫(kù)中多表連接_第3頁(yè)
數(shù)據(jù)庫(kù)中多表連接_第4頁(yè)
數(shù)據(jù)庫(kù)中多表連接_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、SQL 查詢中需要跨越多個(gè)表時(shí)就需要使用連接查詢首先是內(nèi)連接,是用的比較多的一種,內(nèi)連接是指多個(gè)表通過(guò)連接條件 中共享列的相等值進(jìn)行的匹配連接,它主要有兩種形式:等價(jià)連接和自然連接。 等價(jià)連接會(huì)產(chǎn)生冗余列,因?yàn)樗鼘⑦B接條件中的共享列顯示兩次, 而自然連接則 清除了等價(jià)連接產(chǎn)生的冗余列,因此我們所說(shuō)的內(nèi)連接在沒(méi)有特殊說(shuō)明書(shū)的情況 下都指的自然連接。我這里有兩個(gè)表“ XSQK和“ COURSE如下圖:select 卞 from xsqkgoselect r from course二結(jié)果| J消息|姓名課程號(hào)1112121342畢振宇152畢振宇22畢振宇373鄭曉鵬7B3鄭察鵬633丄4靜9我們通

2、過(guò)內(nèi)連接來(lái)查詢每位同學(xué)都選擇了哪門(mén)課,結(jié)果如下:rfFt* -W-Vd *1r.SELECT xsqk. ia,姓名課程名 曲1所選的課,iroiti xsqk inner join course on :.課程號(hào)匸宮包.idj:結(jié)果消息|叫姓名所選的課1| 1語(yǔ)文21徐濤數(shù)據(jù)庫(kù)31徐濤英語(yǔ)42畢振宇語(yǔ)文52畢振宇數(shù)毎庫(kù)&2畢振宇英語(yǔ)1I 3鄭曉稠計(jì)算機(jī)技術(shù)J_3鄭曉鵬美耒_9_3鄭曉翦英語(yǔ)由此我們可以看出,表 XSQKP的所選課程和COURS中的課程號(hào)進(jìn)行比較, 最終得出每位同學(xué)所選擇的課。二、外連接左連接,結(jié)果如下圖所示:select xsqk. id,姓名,課程名as '

3、所選的諜程from xsqk ;亡二匚ci -口u.匚 course on xsqk. 課程號(hào) course-idJh J 1 ihi N. - I I I i. 尢n谿果丨二甬Jftlid |姓名麗選的諜程11121ttW1英語(yǔ)42畢嫌宇語(yǔ)丈52畢振宇r&2英譜73計(jì)號(hào)機(jī)技術(shù)3ft*'_93祁曉鵬英語(yǔ).104»NULL我們可以看出,左連接是以 “Leftjoin ”左邊的表為基準(zhǔn),將XSQK勺課程號(hào)和 COURS的 ID進(jìn)行比較,如果相等則顯示出來(lái),什么是左表呢?連接符號(hào)(LEFTJOIN左邊的表是左表,反之則是右表),如果“ LeftJoin ”左邊的表中 有值,

4、而右邊表中沒(méi)有匹配的選項(xiàng),則顯示,反之則不會(huì)顯示,并且不匹配記錄 的列會(huì)被置空。如:示例中最后一條ID為4的記錄,這條記錄與所比較的條件(XSKQ課程號(hào)=COURSE .ID并不匹配,但是因?yàn)樗谧蟊?XSQK中,因此它被顯 示出來(lái)。右連接,與左連接恰恰相反,運(yùn)行結(jié)果如下圖:<1se Leet xsqk. Id,姓名,課程名as '所選的課程,f coir, xsqk -.!. - j :l course on xsqk 課程號(hào) course id蘇Q粗Iid姓名T師邸課稈I1I 1徐濤吾文2| 2畢振宇語(yǔ)文31數(shù)摒庫(kù)42畢振宇數(shù)據(jù)庫(kù)51英語(yǔ)1 6| 2畢振宇堇語(yǔ)73畔鵬英語(yǔ)SN

5、ULLNULL數(shù)學(xué)9NULLNULLW3113計(jì)算機(jī)技術(shù)因?yàn)闆](méi)有人選擇數(shù)學(xué)和音樂(lè)這兩門(mén)課,本來(lái)是不匹配查詢條件的,但是因?yàn)槭怯?連接,所以也被顯示。三、自連接說(shuō)白了,就是自己跟自己比較。就是把使用內(nèi)連接或外連接把一個(gè)表 中的行同該表中另外一些行連接起來(lái), 它主要用在查詢比較相同的信息。為了連 接同一個(gè)表,必須為該表在FROM子句中指定兩個(gè)別名,這樣才能在邏輯上把該 表作為兩個(gè)不同的表使用。示例表2,如下圖:select = from structureJ>. . i i. h. 1i 4. ,hbh 一Ll二結(jié)果j消息Iid|department叩d1j 1人力資濾2| 2I 2人爭(zhēng)部N

6、ULL1 33技術(shù)變持4J_斗網(wǎng)第爭(zhēng)業(yè)部NULL55網(wǎng)絡(luò)管理員4該表有三連組成,分別是部門(mén)ID、部門(mén)名稱、部門(mén)所屬上級(jí)部門(mén)(UP_id) 我們使用自連接進(jìn)行查詢,需要找出每個(gè)部門(mén)所屬的上級(jí)部門(mén)。因?yàn)?,這個(gè) 表結(jié)構(gòu)不夠清晰,因?yàn)椴块T(mén)和所屬的上級(jí)部門(mén)混在同一個(gè)表中。使用自連接查詢結(jié)果如下圖:I "以下是自連接,顯示每個(gè)部門(mén)及所屬上級(jí)部門(mén)"SELECT A. ID, A. DEPARTMENT B-DEPARTMENT AS 】所屬上級(jí)部門(mén)】FROM STRUCTURE k inner JOIN STRUCTURE B OK A.UP_ID=B.ID go國(guó)結(jié)果I為消息iIDDE

7、PARTMENT所屬上級(jí)部門(mén)11人力賽源人爭(zhēng)部;23技術(shù)變持網(wǎng)絡(luò)爭(zhēng)業(yè)部3,5網(wǎng)絡(luò)管理員網(wǎng)絡(luò)爭(zhēng)業(yè)部可能理解起來(lái)有些困難,我在下面做一下解釋如下圖:"以下是自連接,顯示每個(gè)部門(mén)及所屬上級(jí)部門(mén)VSELECT A ID. A . DEPARTMENT B DEPARTMENT AS 】所屬上#歧部FROM STRUCTURE A InriErSTRUCTURE B ON A. UP ID' B . IDgoselect front structure11口結(jié)果|匕消息|討|depactmentupjcf11人力資源22i人事部NULL3技術(shù)吏持444網(wǎng)路爭(zhēng)業(yè)部NULLJ_J網(wǎng)路管理員L. J寥A11人力賽源22人事部NULL3技術(shù)支持44斗網(wǎng)絡(luò)爭(zhēng)業(yè)部NULLJ_5網(wǎng)絡(luò)管理員L一 一id

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論