版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
查詢(xún)聯(lián)結(jié)查詢(xún)第1頁(yè),共34頁(yè),2023年,2月20日,星期一聯(lián)接查詢(xún)查詢(xún)男生的學(xué)號(hào)、姓名、課程名稱(chēng)和成績(jī),并按成績(jī)從高到低排序。引例:第2頁(yè),共34頁(yè),2023年,2月20日,星期一涉及的表及字段TEACHER(TNO,TNAME,CNO,SAL,DNAME,TSEX,AGE)COURSE1(CNO,CNAME,CTIME,SCOUNT,CTEST)STUDETN1(SNO,SNAME,DNAME,SSEX,CNO,MARK,TYPE)第3頁(yè),共34頁(yè),2023年,2月20日,星期一第4頁(yè),共34頁(yè),2023年,2月20日,星期一1第5頁(yè),共34頁(yè),2023年,2月20日,星期一1第6頁(yè),共34頁(yè),2023年,2月20日,星期一聯(lián)接查詢(xún)的實(shí)現(xiàn)
在FROM中指定表,在WHERE子句中指定聯(lián)結(jié)條件使用JOIN關(guān)鍵字,即在FROM子句中實(shí)現(xiàn)聯(lián)結(jié)聯(lián)結(jié)查詢(xún)第7頁(yè),共34頁(yè),2023年,2月20日,星期一聯(lián)結(jié)查詢(xún)創(chuàng)建表的基本聯(lián)結(jié),需要遵守的基本原則:FROM子句中列出所有聯(lián)結(jié)的表的表名。WHERE子句中定義聯(lián)結(jié)條件。當(dāng)列名為多個(gè)表共有時(shí),要指明列的所在表。第8頁(yè),共34頁(yè),2023年,2月20日,星期一1.連接查詢(xún)的語(yǔ)法結(jié)構(gòu)連接查詢(xún)中用來(lái)連接兩個(gè)表的條件稱(chēng)為連接條件或連接謂詞,其形式為:
[<表1>].<列名1><連接運(yùn)算符>[<表2>].<列名2>常見(jiàn)的連接運(yùn)算符包括:比較運(yùn)算符:=、>、<、>=、<=、!=、BETWEEN和AND。邏輯運(yùn)算符:NOT、AND、OR。使用BETWEEN和AND的連接查詢(xún)形式為:
[<表1>].<列名1><BETWEEN>[<表2>].<列名2>AND[<表2>].<列名3>聯(lián)結(jié)查詢(xún)第9頁(yè),共34頁(yè),2023年,2月20日,星期一2.連接查詢(xún)的分類(lèi)
1)按照是否使用“=”連接運(yùn)算符分類(lèi)等值連接:使用“=”。非等值連接:不使用“=”。
2)按照結(jié)果集分類(lèi):內(nèi)連接和外連接3.笛卡爾積連接笛卡爾積是不帶連接謂詞的連接,只是兩個(gè)表記錄的交叉乘積,其結(jié)果會(huì)產(chǎn)生一些無(wú)意義的組合值。其語(yǔ)法如下:
SELECTselect_listFROMtable1,table2聯(lián)結(jié)查詢(xún)第10頁(yè),共34頁(yè),2023年,2月20日,星期一一、表的基本聯(lián)結(jié)—兩個(gè)表【例】查詢(xún)每個(gè)教師的姓名、所在系、所教課程名及該課程的考試時(shí)間。SELECTTNAME,DNAME,CNAME,CTESTFROMTEACHER,COURSE1WHERETEACHER.CNO=COURSE1.CNO第11頁(yè),共34頁(yè),2023年,2月20日,星期一一、表的基本聯(lián)結(jié)—多個(gè)表(復(fù)合連接)【例】查詢(xún)每個(gè)學(xué)生的姓名、所在系、所選修課程名稱(chēng)、該課程的考試時(shí)間、考試成績(jī)和授課教師姓名。SELECTSNAME,STUDENT1.DNAME,CNAME,CTEST,MARK,TNAMEFROMTEACHER,COURSE1,STUDENT1WHERESTUDENT1.CNO=COURSE1.CNOANDTEACHER.CNO=STUDENT1.CNO第12頁(yè),共34頁(yè),2023年,2月20日,星期一一、表的基本聯(lián)結(jié)—使用表別名【例】查詢(xún)每個(gè)學(xué)生的姓名、所在系、所選修課程名稱(chēng)、該課程的考試時(shí)間、考試成績(jī)和授課教師姓名。SELECTSNAME,S.DNAME,CNAME,CTEST,MARK,TNAMEFROMTEACHERAST
,COURSE1ASC,STUDENT1SWHERES.CNO=C.CNOANDT.CNO=S.CNO注:使用別名后,在語(yǔ)句中就不能再使用表的原名。第13頁(yè),共34頁(yè),2023年,2月20日,星期一二、采用JOIN關(guān)鍵字建立聯(lián)結(jié)在FROM子句中實(shí)現(xiàn)表的聯(lián)結(jié),有助于將聯(lián)結(jié)條件與WHERE的搜索條件區(qū)分開(kāi),WHERE子句包含的搜索條件,用于進(jìn)一步篩選根據(jù)聯(lián)結(jié)條件選擇的行。第14頁(yè),共34頁(yè),2023年,2月20日,星期一JOIN聯(lián)結(jié)的語(yǔ)法格式SELECT……FROMfirst_tablejoin_typesecond_table
ON[(]join_condition[)]WHERE……..【例】FROMSTUDENTJOINS_C
ON(STUDENT.SNO=S_C.SNO)注:1.Join_type:聯(lián)結(jié)的類(lèi)型。2.ON子句:指出聯(lián)結(jié)條件。第15頁(yè),共34頁(yè),2023年,2月20日,星期一聯(lián)接查詢(xún)分類(lèi)內(nèi)部聯(lián)接(INNERJOIN):外部聯(lián)接(OUTERJOIN):
左向外部聯(lián)接(LEFTOUTERJOIN)
右向外部聯(lián)接(RIGHTOUTERJOIN)
完整外部聯(lián)接(FULLOUTERJOIN)交叉聯(lián)接(CROSSJOIN):也稱(chēng)作笛卡兒積。第16頁(yè),共34頁(yè),2023年,2月20日,星期一內(nèi)部聯(lián)接(INNERJOIN)典型的聯(lián)接運(yùn)算,也可以叫做等同聯(lián)接,使用類(lèi)似于“=”或“<>”的比較運(yùn)算符根據(jù)每個(gè)表的通用列中的值匹配兩個(gè)表中的行。返回結(jié)果集是兩個(gè)表中所有相匹配的數(shù)據(jù),而舍棄不匹配的數(shù)據(jù)。第17頁(yè),共34頁(yè),2023年,2月20日,星期一內(nèi)部聯(lián)接(INNERJOIN)XYX
INNERJOIN
Y
ON
X.C=Y.C第18頁(yè),共34頁(yè),2023年,2月20日,星期一內(nèi)部聯(lián)結(jié)
【例】從STUDENT1表和TEACHER表中查詢(xún)學(xué)生姓名、所在系、所修的所有課程的課程號(hào)及開(kāi)課教師姓名。SELECTSNAME,S.DNAME,S.CNO,TNAMEFROMSTUDENT1ASS
INNERJOIN
TEACHERASTONS.CNO=T.CNO第19頁(yè),共34頁(yè),2023年,2月20日,星期一練習(xí)查詢(xún)學(xué)生修的非本系教師開(kāi)設(shè)的課程信息,包括學(xué)生的學(xué)號(hào)、姓名、所在系、課程號(hào)、成績(jī)、以及開(kāi)課教師的姓名。SELECTS.SNO,SNAME,S.DNAME,S.CNO,MARK,TNAMEFROMSTUDENT1ASS
INNERJOIN
TEACHERAST
ONS.CNO=T.CNO
ANDS.DNAME<>T.DNAME第20頁(yè),共34頁(yè),2023年,2月20日,星期一外部聯(lián)接X(jué)Y左外部聯(lián)結(jié)(LEFTOUTERJOIN)的結(jié)果集包括左表的所有行,而不僅僅是匹配行。表示為:左外連接=內(nèi)連接+左邊表中失配的元組XLEFTOUTERJOINYONX.C=Y.C第21頁(yè),共34頁(yè),2023年,2月20日,星期一外部聯(lián)接右外部聯(lián)結(jié)(RIGHTOUTERJOIN)的結(jié)果集包括右表的所有行,而不僅僅是匹配行。表示為:右外連接=內(nèi)連接+右邊表中失配的元組XRIGHTOUTERJOINYONX.C=Y.CXY第22頁(yè),共34頁(yè),2023年,2月20日,星期一外部聯(lián)接完整外部聯(lián)結(jié)(FULLOUTERJOIN)的結(jié)果集包括左表和右表的所有行,而不僅僅是匹配行。XFULLOUTERJOINYONX.C=Y.CXY第23頁(yè),共34頁(yè),2023年,2月20日,星期一查詢(xún)所有學(xué)生的學(xué)號(hào)、姓名、課程號(hào)、課程名稱(chēng)、考試時(shí)間和成績(jī)。即使該學(xué)生所選的課程不包含在COURSE1表內(nèi)。SELECTS.SNO,SNAME,S.CNO,CNAME,CTEST,S.MARKFROMSTUDENT1ASS
LEFTOUTER
JOIN
COURSE1ASC
ONS.CNO=C.CNO實(shí)例第24頁(yè),共34頁(yè),2023年,2月20日,星期一練習(xí)SELECTS.SNO,SNAME,S.CNO,TNAMEFROMSTUDENT1ASS
RIGHTOUTERJOIN
TEACHERAST
ONS.CNO=T.CNO
查詢(xún)學(xué)生的學(xué)號(hào)、姓名、課程號(hào)和授課教師。即使有些老師沒(méi)有授課課程。第25頁(yè),共34頁(yè),2023年,2月20日,星期一交叉聯(lián)結(jié)(CROSSJOIN)交叉聯(lián)接:也稱(chēng)作笛卡兒積。左表中的每一行均與右表中的所有行組合。第26頁(yè),共34頁(yè),2023年,2月20日,星期一交叉聯(lián)結(jié)(CROSSJOIN)SELECTS.SNO,SNAME,S.CNO,CNAME,CTEST,MARKFROMSTUDENT1ASS
CROSSJOINCOURSE1ASC注意:使用CROSSJOIN所得到的只是兩個(gè)表的笛卡爾積,得不到想要的結(jié)果。我們可以使用WHERE關(guān)鍵字指定搜索條件,這樣就和內(nèi)連接的作用相同了。WHERES.CNO=C.CNO第27頁(yè),共34頁(yè),2023年,2月20日,星期一自聯(lián)結(jié)自聯(lián)結(jié)是指表與其自身進(jìn)行聯(lián)結(jié)?!纠坎樵?xún)存在不及格課程的學(xué)生的姓名、所在系、不及格的課程及成績(jī)信息。SELECTSNAME,DNAME,CNO,MARKFROMSTUDENT1WHEREMARK<60第28頁(yè),共34頁(yè),2023年,2月20日,星期一查詢(xún)存在不及格課程的學(xué)生的姓名、所在系、所有的課程號(hào)及成績(jī)信息。SELECTDISTINCTS1.SNAME,S1.DNAME,S1.CNO,S1.MARKFROMSTUDENT1ASS1
JOINSTUDENT1ASS2
ON
S1.SNO=S2.SNO
ANDS2.MARK<60
實(shí)例自聯(lián)接中必須為表創(chuàng)建兩個(gè)不同的別名,使之成為邏輯上的兩張表。第29頁(yè),共34頁(yè),2023年,2月20日,星期一分析—兩步SELECTdistinctSNOFROMSTUDENT1WHEREMARK<60SELECTSNAME,DNAME,CNO,MARKFROMSTUDENT1WHERESNOIN('9702','9703','9705')ORDERBYSNAME第30頁(yè),共34頁(yè),2023年,2月20日,星期一分析—一步SELECTDISTINCTS1.SNAME,S1.CNO,S1.MARK…FROMSTUDENT1ASS1JOINSTUDENT1ASS2ONS1.SNO=S2.SNOANDS2.MARK<60不加distinct的結(jié)果:第31頁(yè),共34頁(yè),2023年,2月20日,星期一練習(xí)在course表中,查詢(xún)課程學(xué)分相同,但名字不同的課程的編號(hào)(CNO)、名稱(chēng)(CNAME)和學(xué)分(CREDIT)。USEteachingSELECTDISTINCTC.CNO,C.CNAME,C.CREDITFROMCOURSEASCJOINCOURSEASCCONC.CREDIT=CC.CREDITANDC.CNAME<>CC.CNAME第32頁(yè),共34頁(yè),2023年,2月20日,星期一使用UNION子句使用UNION子句的查詢(xún)稱(chēng)為聯(lián)合查詢(xún),它可以將兩個(gè)或更多查詢(xún)的結(jié)果集組合為一個(gè)結(jié)果集。
使用UNION組合兩個(gè)查詢(xún)的結(jié)果集的兩個(gè)基本規(guī)則是:(1)所有查詢(xún)中的列數(shù)和列的順
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度數(shù)據(jù)中心運(yùn)營(yíng)維護(hù)承包人工合同模板4篇
- 2025年度互聯(lián)網(wǎng)數(shù)據(jù)中心搭建服務(wù)合同協(xié)議3篇
- 2025年度化工原料采購(gòu)與儲(chǔ)存協(xié)議3篇
- 2025年度環(huán)保型綠色打印設(shè)備承包合同范本3篇
- 2025年度汽車(chē)4S店集團(tuán)購(gòu)車(chē)優(yōu)惠及售后服務(wù)協(xié)議3篇
- 2024衣柜墻板吊頂裝修工程施工安全與環(huán)境保護(hù)合同
- 創(chuàng)新集成電路設(shè)計(jì)與制造技術(shù)項(xiàng)目可行性研究報(bào)告范文模板
- 《融資租賃行業(yè)培訓(xùn)》課件
- 2025年度房產(chǎn)中介服務(wù)傭金結(jié)算標(biāo)準(zhǔn)合同4篇
- 2025年度別墅裝修工程承包與監(jiān)理協(xié)議4篇
- 項(xiàng)目工程師年終總結(jié)課件
- 一年級(jí)口算練習(xí)題大全(可直接打印A4)
- 電動(dòng)車(chē)棚消防應(yīng)急預(yù)案
- 人力資源戰(zhàn)略規(guī)劃地圖
- 2023年河南公務(wù)員考試申論試題(縣級(jí)卷)
- DB35T 2198-2024 工業(yè)園區(qū)低零碳創(chuàng)建評(píng)估準(zhǔn)則 福建省市監(jiān)局
- 不為積習(xí)所蔽勿為時(shí)尚所惑-如何做一個(gè) 好老師 高中主題班會(huì)課件
- 托育服務(wù)中心項(xiàng)目可行性研究報(bào)告
- 中式烹調(diào)師四級(jí)理論考試題庫(kù)(重點(diǎn)500題)
- 碳排放管理員 (碳排放核查員)技能考核內(nèi)容結(jié)構(gòu)表四級(jí)、技能考核要素細(xì)目表四級(jí)
- 物業(yè)五級(jí)三類(lèi)服務(wù)統(tǒng)一標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論