用關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL實(shí)現(xiàn)數(shù)據(jù)查詢(多表查詢)的應(yīng)用研究_第1頁
用關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL實(shí)現(xiàn)數(shù)據(jù)查詢(多表查詢)的應(yīng)用研究_第2頁
用關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL實(shí)現(xiàn)數(shù)據(jù)查詢(多表查詢)的應(yīng)用研究_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、用關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL實(shí)現(xiàn)數(shù)據(jù)查詢多表查詢的應(yīng)用研究用關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL實(shí)現(xiàn)數(shù)據(jù)查詢多表查詢的應(yīng)用研究關(guān)系數(shù)據(jù)庫是基于關(guān)系模型作為數(shù)據(jù)的組織方式的,它借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)?,F(xiàn)實(shí)世界中的各種實(shí)體以及實(shí)體之間的各種聯(lián)絡(luò)均用關(guān)系模型來表示。它是由埃德加科德于1970年首先提出的,并配合科德十二定律?,F(xiàn)如今雖然對(duì)此模型有一些批評(píng)意見,但它還是數(shù)據(jù)存儲(chǔ)的傳統(tǒng)標(biāo)準(zhǔn)。標(biāo)準(zhǔn)數(shù)據(jù)查詢語言SQL就是一種基于關(guān)系數(shù)據(jù)庫的語言,這種語言執(zhí)行對(duì)關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的檢索和操作。1數(shù)據(jù)查詢所謂數(shù)據(jù)查詢數(shù)據(jù)檢索就是從關(guān)系數(shù)據(jù)庫的數(shù)據(jù)表中找出用戶所需的數(shù)據(jù),只要表關(guān)系中存在,那么可以通過各

2、種各樣的方式將它找出來,SQL的查詢功能就是實(shí)現(xiàn)這一功能的。本文主要研究討論多表查詢。在實(shí)際應(yīng)用中,由于一個(gè)關(guān)系數(shù)據(jù)庫根據(jù)需求分析后得到很多表,而且表與表之間互相存在一對(duì)一,一對(duì)多或是多對(duì)多的表間關(guān)系,這些表中的數(shù)據(jù)往往互相有較為嚴(yán)密的復(fù)雜聯(lián)絡(luò),在這種情況下,要查找用戶所需的數(shù)據(jù)時(shí)就得用多表查詢才能實(shí)現(xiàn)用戶的查詢目的和要求,比方在倉庫數(shù)據(jù)庫中分別有四張表,倉庫表,職工表,訂單表和供給商表,這四個(gè)表兩兩存在一對(duì)多的表間關(guān)系,一個(gè)倉庫可以有多名職工,一名職工只能屬于一個(gè)倉庫;一名職工可以經(jīng)手多筆訂單,一筆訂單只能由一名職工經(jīng)手;一家供給商可以完成多表訂單,一筆訂單只能由一家供給商完成,在實(shí)際應(yīng)用中

3、,假如要根據(jù)倉庫表中的數(shù)據(jù)作為條件查詢檢索供給商表中的數(shù)據(jù)時(shí),必須得用基于多表的連接查詢才能完成。1.1簡單連接查詢。簡單連接查詢的SQL語句格式可總結(jié)如下。Selet查找數(shù)據(jù)所在的字段名,字段間用逗號(hào)隔開,假如是一個(gè)表的所有字段,那么用*號(hào)表示,但必須通過表名.*的方式做限定是哪個(gè)表的所有字段,假如不做限定,直接一個(gè)*,那么表示要查找的是fr后面跟的所有表的所有字段fr至少兩張或兩張以上的表名,這些表之間往往存在著一對(duì)一或是一對(duì)多,或是多對(duì)多的表間關(guān)系的注:連接條件是兩個(gè)表的主外鍵相等,主表表名.主鍵=子表表名.外鍵如:倉庫表.倉庫號(hào)=職工表.倉庫號(hào)。假如fr后面跟兩張表,那么是兩個(gè)表的簡單

4、連接查詢,有一個(gè)連接條件,假如fr后面跟三張表,那么有兩個(gè)連接條件,假如fr后面跟四張表,那么有三個(gè)連接條件,依此類推。而且查找數(shù)據(jù)的條件和連接條件必須用and連接,連接條件之間也用and連接。例如:在倉庫管理數(shù)據(jù)庫的四張表中檢索出回民所在倉庫的倉庫信息。對(duì)應(yīng)的SQL語句為:selet倉庫表.*fr倉庫表,職工表here民族=回and倉庫表.倉庫號(hào)=職工表.倉庫號(hào)。從這個(gè)簡單連接查詢實(shí)例來看。在基于多表的簡單連接查詢中,第一先確定最終要查詢的數(shù)據(jù)所在的字段來自于幾張表的幾個(gè)字段,查找數(shù)據(jù)的條件涉及到幾個(gè)表的幾個(gè)字段,其次根據(jù)表間關(guān)系確定查詢涉及到幾張表,然后確定連接條件。且here是必選項(xiàng)。1

5、.2嵌套查詢。嵌套查詢的意思是,一個(gè)查詢語句selet-fr-here塊可以嵌套在另外一個(gè)查詢塊的here子句中,稱為嵌套查詢。其中外層查詢也稱為父查詢或主查詢。內(nèi)層查詢也稱子查詢或從查詢。嵌套查詢的工作方式是:先處理內(nèi)查詢,由內(nèi)向外處理,外層查詢需要內(nèi)層查詢的結(jié)果來支持,但內(nèi)層查詢不需要外層查詢的支持。例如:Selet城市fr倉庫表here倉庫號(hào)insele本文由論文聯(lián)盟搜集整理t倉庫號(hào)fr職工表here工資=4532。在這類嵌套查詢中,帶有IN或NTIN謂詞的嵌套查詢?cè)趯?shí)際應(yīng)用中用的最多,這里的IN相當(dāng)于集合運(yùn)算符。本文在闡述嵌套查詢中就以帶有IN或NTIN謂詞的嵌套查詢進(jìn)展闡述,帶有比擬

6、運(yùn)算符的子查詢、帶有ANY或ALL謂詞的子查詢、帶有EXISTS謂詞的子查詢就再不做詳細(xì)闡述了。1.3超連接查詢。超連接查詢分為內(nèi)連接和外連接,外連接又分為左外連接,右外連接和全外連接。假如表中不匹配的數(shù)據(jù)不需要出如今查詢結(jié)果中,那么用內(nèi)連接。假如在查詢結(jié)果中兩個(gè)表中不匹配的數(shù)據(jù)都要出如今查詢結(jié)果中的話,那么用全外連接,其對(duì)應(yīng)表中對(duì)應(yīng)字段用NULL表示。其SQL語句格式為以基于兩張表的超連接為主:Selet跟簡單連接查詢的要求一樣fr主表表名n連接條件here查找數(shù)據(jù)的條件。例如以全外連接為例:selet倉庫.倉庫號(hào),城市,面積,職工號(hào),工資fr倉庫表fulljin職工表n倉庫表.倉庫號(hào)=職工

7、表.倉庫號(hào)JIN連接格式在連接多個(gè)表時(shí)的書寫方法要特別注意,在這種格式中JIN的順序和N的順序正好是相反的。2三種多表查詢的特點(diǎn)及規(guī)律在以上研究的三種多表查詢中,基于多表的簡單連接查詢中,要查詢的數(shù)據(jù)所在的字段可以是來自于一張表的字段,也可以是來自于多張表的字段,而查找數(shù)據(jù)的條件可以來自于一張表的字段,也可以來自于多張表的字段,即使沒有查找數(shù)據(jù)的條件,但連接條件必須得有,在其SQL語句格式中,here是必選項(xiàng)。在嵌套查詢中,通過實(shí)際應(yīng)用可以得出,嵌套查詢不管由幾個(gè)查詢語句塊組成,它們都是基于單表的簡單查詢構(gòu)成的,而且最內(nèi)層的查詢結(jié)果就是其外層查詢的條件,沒有內(nèi)層查詢的結(jié)果,就不可能得到外層查詢的結(jié)果,執(zhí)行順序都是由內(nèi)往外執(zhí)行的。在超連接查詢中,這種查詢往往是在有關(guān)系的表中出現(xiàn)了所謂的不匹配數(shù)據(jù)時(shí),根據(jù)用戶的不同需要而使用的查詢,到底選用哪一種主要取決于查詢結(jié)果中要不要出現(xiàn)不匹配的數(shù)據(jù)和出現(xiàn)哪個(gè)表中的不匹配數(shù)據(jù)而定。假如要查找的數(shù)據(jù)來自于多張表的多個(gè)字段,那么可用連接查詢和內(nèi)連接查詢,查詢結(jié)果一樣。假如要查找的數(shù)據(jù)來自于一張表的字段,而條件發(fā)生

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論