MySQL數(shù)據(jù)庫應(yīng)用技術(shù)課件:多表查詢_第1頁
MySQL數(shù)據(jù)庫應(yīng)用技術(shù)課件:多表查詢_第2頁
MySQL數(shù)據(jù)庫應(yīng)用技術(shù)課件:多表查詢_第3頁
MySQL數(shù)據(jù)庫應(yīng)用技術(shù)課件:多表查詢_第4頁
MySQL數(shù)據(jù)庫應(yīng)用技術(shù)課件:多表查詢_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

多表查詢MySQL數(shù)據(jù)庫應(yīng)用技術(shù)知識目標(biāo)(1)了解連接查詢;(2)掌握子查詢語法結(jié)構(gòu);(3)掌握外鍵的創(chuàng)建、查看、修改與刪除操作。能力目標(biāo)素養(yǎng)目標(biāo)思政目標(biāo)(1)能熟練的利用交叉、內(nèi)連接、外連接語句進(jìn)行表查詢;(2)能熟練的使用子查詢語句語法;(3)對外鍵的熟練使用。(1)增強(qiáng)實(shí)際動手能力;(2)養(yǎng)成遵守職業(yè)規(guī)范的習(xí)慣。(1)培養(yǎng)學(xué)生主動學(xué)習(xí)的意識和興趣,以及對終身學(xué)習(xí)的認(rèn)同感。一教學(xué)目標(biāo)教學(xué)重點(diǎn)、難點(diǎn)1.連接查詢2.子查詢重點(diǎn)難點(diǎn)1.連接查詢2.子查詢二三

學(xué)習(xí)任務(wù)本單元學(xué)生任務(wù)是完成數(shù)據(jù)表的多表查詢,要求如下:1.對stu_info表的叉連接查詢;2.對stu_info表的內(nèi)連接查詢;3.對stu_info表的外連接查詢;4.對stu_info表的子查詢;5.對stu_info表的外鍵的創(chuàng)建與刪除。授課內(nèi)容16.1.1交叉連接26.1.2內(nèi)連接36.1.3外連接四

任務(wù)1連接查詢思維導(dǎo)圖6.1.1

交叉連接1.交叉連接概念

交叉連接是一種將一張表的每一行數(shù)據(jù)與另一張表的每一行數(shù)據(jù)進(jìn)行組合的查詢方式。交叉連接是一種連接類型,它將兩個或多個表中的每一行相互匹配,生成所有可能的組合。也就是說,交叉連接是在不考慮任何限制條件的情況下,將兩個或多個表中的所有記錄組合在一起,生成一個新的表。交叉連接可以查詢兩個或兩個以上的表,為了更好的理解,下面先講解兩個表的交叉連接查詢。交叉連接(CROSSJOIN)一般用來返回連接表的笛卡爾積。6.1.1

交叉連接2.交叉連接的語法格式

MySQL中,交叉連接的語法如下:SELECT字段名FROMtable1CROSSJOINtable2[WHERE子句];語法說明如下:(1)CROSSJOIN:關(guān)鍵字,交叉連接使用CROSSJOIN關(guān)鍵字。(2)字段名:需要查詢的字段名稱。如果想查詢所有數(shù)據(jù),可以使用*符號。(3)<table1><table2>:需要交叉連接的表名。(4)WHERE子句:用來設(shè)置交叉連接的查詢條件。(5)特點(diǎn):總記錄條數(shù):table1記錄條數(shù)*table2記錄條數(shù)(6)總列數(shù):table1列數(shù)+table2列數(shù)6.1.1

交叉連接3.交叉連接的示例程序

在student數(shù)據(jù)庫中,對stu_info表和stu_cj表進(jìn)行交叉連接,示例程序如下:SELECT*FROMstu_infoCROSSJOINstu_cjwherestu_info.姓名=stu_cj.姓名;6.1.1

交叉連接4.交叉連接的注意事項(xiàng)(1)交叉連接會生成一個非常大的結(jié)果集,通常不建議使用。(2)如果兩個表的行數(shù)非常大,交叉連接的執(zhí)行時間會非常長,對數(shù)據(jù)庫的性能會產(chǎn)生很大的影響。(3)如果要使用交叉連接,建議先對表進(jìn)行篩選,減少結(jié)果集的大小。6.1.2

內(nèi)連接1.內(nèi)連接概念

MySQL數(shù)據(jù)庫的內(nèi)連接是一種在兩個或多個表格之間進(jìn)行聯(lián)接查詢的方法。內(nèi)連接也稱為等值連接。內(nèi)連接是比較基本的一種連接方式,其主要功能是將兩個表格中有相同值的行合并,從而得到所需要的查詢結(jié)果。在MySQL數(shù)據(jù)庫中,內(nèi)連接可以使用JOIN或INNERJOIN關(guān)鍵字進(jìn)行實(shí)現(xiàn)。6.1.2

內(nèi)連接2.內(nèi)連接基本語法格式內(nèi)連接的語法格式如下:SELECT<字段名>FROM<表1>INNERJOIN<表2>[ON表格1.列名1=表格2.列名2]語法說明如下:(1)字段名:需要查詢的字段名稱。(2)<表1><表2>:需要內(nèi)連接的表名。(3)INNERJOIN:內(nèi)連接中可以省略INNER關(guān)鍵字,只用關(guān)鍵字JOIN。(4)ON子句:用來設(shè)置內(nèi)連接的連接條件。6.1.2

內(nèi)連接3.內(nèi)連接示例程序用內(nèi)連接查詢學(xué)生信息表stu_info和成績信息表stu_cj中的共同部分。selectstu_info.姓名,stu_cj.成績fromstu_infoinnerjoinstu_cjonstu_info.姓名=stu_cj.姓名;或者selecta.姓名,b.成績fromstu_infoainnerjoinstu_cjbona.姓名=b.姓名;6.1.2

內(nèi)連接4.內(nèi)連接注意事項(xiàng)(1)在這里的查詢語句中,兩個表之間的關(guān)系通過INNERJOIN指定,連接的條件使用ON子句給出。(2)當(dāng)對多個表進(jìn)行查詢時,要在SELECT語句后面指定字段是來源于哪一張表。因此,在多表查詢時,SELECT語句后面的寫法是表名.列名。另外,如果表名非常長的話,也可以給表設(shè)置別名,這樣就可以直接在SELECT語句后面寫上表的別名.列名。(3)這道題目是可以用內(nèi)連接來做的,但是內(nèi)連接的缺點(diǎn)是會遺漏掉某些表中的信息,那么如果我們想保留,這就需要提到外連接。6.1.3外連接1.外連接概念

MySQL是一種流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它支持多種連接方式,其中最常用的之一是外連接。接下來將詳細(xì)介紹MySQL外連接的用法。外連接是一種連接方法,它允許檢索兩個或多個表中的數(shù)據(jù),并顯示所有符合條件的行,即使其中一個表中的行沒有與另一個表中的行匹配。外連接(OUTERJOIN):外連接不但返回符合連接和查詢條件的數(shù)據(jù)行,還返回不符合條件的一些行。6.1.3外連接2.外連接分類MySQL支持三種類型的外連接:左外連接、右外連接和完全外連接。三者的共同點(diǎn)是都返回符合連接條件和查詢條件(即:內(nèi)連接)的數(shù)據(jù)行。不同點(diǎn)如下:(1)左外連接還返回左表中不符合連接條件單符合查詢條件的數(shù)據(jù)行。(2)右外連接還返回右表中不符合連接條件單符合查詢條件的數(shù)據(jù)行。在左外連接和右外連接時都會以一張表為基表,該表的內(nèi)容會全部顯示,然后加上兩張表匹配的內(nèi)容。如果基表的數(shù)據(jù)在另一張表沒有記錄。那么在相關(guān)聯(lián)的結(jié)果集行中列顯示為空值(NULL)。6.1.3外連接3.左外連接(LEFTJOIN)

以左表為基表,在from子句中使用關(guān)鍵字leftouterjoin”或關(guān)鍵字“l(fā)eftjoin”來連接兩張表,并使用ON子句來設(shè)置連接條件。兩個表在連接過程中除了返回滿足連接條件的行以外,還返回左表中不滿足條件的行。保證左側(cè)表的數(shù)據(jù)完全顯示,連接時右側(cè)表中的數(shù)據(jù)能匹配就匹配,沒法匹配的話就顯示為NULL。返回包括左表中的所有記錄和右表中連接字段相等的記錄。如下圖中,左外連接就是左邊一整個圓。6.1.3外連接3.左外連接(LEFTJOIN)左外連接示例:根據(jù)兩張表都有課程名稱這些數(shù)據(jù),那么我們用左連接語句將課程信息表和成績信息表進(jìn)行連接,以課程信息表作為基表來進(jìn)行左連接分?jǐn)?shù)信息表,運(yùn)行語句如下:select*fromstu_infoLEFTJOINstu_cjONstu_info.姓名=stu_cj.姓名;6.1.3外連接4.右外連接(RIGHTJOIN)右外連接又稱為右連接,右連接是左連接的反向連接。以右表為基表,在from子句中使用關(guān)鍵字“rightouterjoin”或關(guān)鍵字“rightjoin”來連接兩張表,并使用ON子句來設(shè)置連接條件。返回右表中所有的行,即使左表中沒有與之匹配的行。兩個表在連接過程中除了返回滿足連接條件的行以外,還返回右表中不滿足條件的行。保證右側(cè)表的數(shù)據(jù)完全顯示,連接時左側(cè)表中的數(shù)據(jù)能匹配就匹配,沒法匹配的話就顯示為NULL。返回包括右表中的所有記錄和左表中連接字段相等的記錄。如下圖中,右外連接就是右邊一整個圓。6.1.3外連接5.右外連接(RIGHTJOIN)示例:根據(jù)兩張表都有課程名稱這些數(shù)據(jù),那么我們用右連接語句將課程信息表和成績信息表進(jìn)行連接,以課程信息表作為基表來進(jìn)行左連接分?jǐn)?shù)信息表,運(yùn)行語句如下:select*fromstu_infoRIGHTJOINstu_cjONstu_info.姓名=stu_cj.姓名;課堂總結(jié)交叉連接123內(nèi)連接內(nèi)連接概念;內(nèi)連接語法格式;內(nèi)連接示例。外連接左外連接;右外連接;全外連接查詢所有的數(shù)據(jù);進(jìn)行交叉連接查詢授課內(nèi)容16.2.1子查詢概念26.2.2子查詢關(guān)鍵字五

任務(wù)2子查詢思維導(dǎo)圖6.2.1

子查詢概念1.基本概念子查詢,又叫內(nèi)部查詢,指將一個查詢語句嵌套在另一個查詢語句中。子查詢允許把一個查詢嵌套在另一個查詢當(dāng)中。相對于內(nèi)部查詢,包含內(nèi)部查詢的就稱為外部查詢,或者叫父查詢。6.2.2

子查詢關(guān)鍵字1.帶比較運(yùn)算符的子查詢子查詢可以使用比較運(yùn)算符,包括=、!=、>、>=、<、<=等。比較運(yùn)算符在子查詢時使用業(yè)廣泛。6.2.2

子查詢關(guān)鍵字2.帶IN關(guān)鍵字的子查詢只有子查詢返回的結(jié)果列包含一個值時,比較運(yùn)算符才適用。假如一個子查詢返回的結(jié)果集是值的列表,這時比較運(yùn)算符就必須用IN運(yùn)算符代替。IN運(yùn)算符可以檢測結(jié)果集中是否存在某個特定的值,如果檢測成功則執(zhí)行外部的查詢。6.2.2

子查詢關(guān)鍵字3.帶EXISTS關(guān)鍵字的子查詢使用EXISTS關(guān)鍵字時,內(nèi)層查詢語句不返回查詢的記錄,而是返回一個真假。如果內(nèi)層查詢語句查詢到滿足條件的記錄,就返回一個真值(true),否則,將返回一個假值(false)。當(dāng)返回的值為true時,外層查詢語句將進(jìn)行查詢,當(dāng)返回的值為false時,外層查詢語句不進(jìn)行查詢或者查詢不出任何記錄。6.2.2

子查詢關(guān)鍵字4.帶ANY關(guān)鍵字的子查詢

ANY關(guān)鍵完表示滿足其中任意一個條,通常與比較運(yùn)算一起使用。使用ANY關(guān)鍵字時只要滿足內(nèi)層查詢語句返回的結(jié)果中的任意一個,就可以通過該條件來執(zhí)行外層查詢語句。語法格式如下:列名比較運(yùn)算符ANY(子查詢)

如果比較運(yùn)算符是“<”,則表示小于子查詢結(jié)果集中某一個值;如果是“”則表示至少大于子查詢結(jié)果集中的某一個值)(或者說大于子查詢結(jié)果集中的最小值)。6.2.2

子查詢關(guān)鍵字5.帶ALL關(guān)鍵字的子查詢ALL關(guān)鍵字表示滿足所有條件,通常與比較運(yùn)算符一起使用。使用ALL關(guān)鍵字時,只有滿足查詢語句返回的所有結(jié)果,才可以執(zhí)行外層查詢語句。語法格式如下:列名比較運(yùn)算符ALL(子查詢)如果比較運(yùn)算符是“<”,則表示小于子查詢結(jié)果集

溫馨提示

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

評論

0/150

提交評論