




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
查詢聯(lián)結(jié)查詢第1頁,共34頁,2023年,2月20日,星期一聯(lián)接查詢查詢男生的學(xué)號、姓名、課程名稱和成績,并按成績從高到低排序。引例:第2頁,共34頁,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頁,共34頁,2023年,2月20日,星期一第4頁,共34頁,2023年,2月20日,星期一1第5頁,共34頁,2023年,2月20日,星期一1第6頁,共34頁,2023年,2月20日,星期一聯(lián)接查詢的實(shí)現(xiàn)
在FROM中指定表,在WHERE子句中指定聯(lián)結(jié)條件使用JOIN關(guān)鍵字,即在FROM子句中實(shí)現(xiàn)聯(lián)結(jié)聯(lián)結(jié)查詢第7頁,共34頁,2023年,2月20日,星期一聯(lián)結(jié)查詢創(chuàng)建表的基本聯(lián)結(jié),需要遵守的基本原則:FROM子句中列出所有聯(lián)結(jié)的表的表名。WHERE子句中定義聯(lián)結(jié)條件。當(dāng)列名為多個表共有時,要指明列的所在表。第8頁,共34頁,2023年,2月20日,星期一1.連接查詢的語法結(jié)構(gòu)連接查詢中用來連接兩個表的條件稱為連接條件或連接謂詞,其形式為:
[<表1>].<列名1><連接運(yùn)算符>[<表2>].<列名2>常見的連接運(yùn)算符包括:比較運(yùn)算符:=、>、<、>=、<=、!=、BETWEEN和AND。邏輯運(yùn)算符:NOT、AND、OR。使用BETWEEN和AND的連接查詢形式為:
[<表1>].<列名1><BETWEEN>[<表2>].<列名2>AND[<表2>].<列名3>聯(lián)結(jié)查詢第9頁,共34頁,2023年,2月20日,星期一2.連接查詢的分類
1)按照是否使用“=”連接運(yùn)算符分類等值連接:使用“=”。非等值連接:不使用“=”。
2)按照結(jié)果集分類:內(nèi)連接和外連接3.笛卡爾積連接笛卡爾積是不帶連接謂詞的連接,只是兩個表記錄的交叉乘積,其結(jié)果會產(chǎn)生一些無意義的組合值。其語法如下:
SELECTselect_listFROMtable1,table2聯(lián)結(jié)查詢第10頁,共34頁,2023年,2月20日,星期一一、表的基本聯(lián)結(jié)—兩個表【例】查詢每個教師的姓名、所在系、所教課程名及該課程的考試時間。SELECTTNAME,DNAME,CNAME,CTESTFROMTEACHER,COURSE1WHERETEACHER.CNO=COURSE1.CNO第11頁,共34頁,2023年,2月20日,星期一一、表的基本聯(lián)結(jié)—多個表(復(fù)合連接)【例】查詢每個學(xué)生的姓名、所在系、所選修課程名稱、該課程的考試時間、考試成績和授課教師姓名。SELECTSNAME,STUDENT1.DNAME,CNAME,CTEST,MARK,TNAMEFROMTEACHER,COURSE1,STUDENT1WHERESTUDENT1.CNO=COURSE1.CNOANDTEACHER.CNO=STUDENT1.CNO第12頁,共34頁,2023年,2月20日,星期一一、表的基本聯(lián)結(jié)—使用表別名【例】查詢每個學(xué)生的姓名、所在系、所選修課程名稱、該課程的考試時間、考試成績和授課教師姓名。SELECTSNAME,S.DNAME,CNAME,CTEST,MARK,TNAMEFROMTEACHERAST
,COURSE1ASC,STUDENT1SWHERES.CNO=C.CNOANDT.CNO=S.CNO注:使用別名后,在語句中就不能再使用表的原名。第13頁,共34頁,2023年,2月20日,星期一二、采用JOIN關(guān)鍵字建立聯(lián)結(jié)在FROM子句中實(shí)現(xiàn)表的聯(lián)結(jié),有助于將聯(lián)結(jié)條件與WHERE的搜索條件區(qū)分開,WHERE子句包含的搜索條件,用于進(jìn)一步篩選根據(jù)聯(lián)結(jié)條件選擇的行。第14頁,共34頁,2023年,2月20日,星期一JOIN聯(lián)結(jié)的語法格式SELECT……FROMfirst_tablejoin_typesecond_table
ON[(]join_condition[)]WHERE……..【例】FROMSTUDENTJOINS_C
ON(STUDENT.SNO=S_C.SNO)注:1.Join_type:聯(lián)結(jié)的類型。2.ON子句:指出聯(lián)結(jié)條件。第15頁,共34頁,2023年,2月20日,星期一聯(lián)接查詢分類內(nèi)部聯(lián)接(INNERJOIN):外部聯(lián)接(OUTERJOIN):
左向外部聯(lián)接(LEFTOUTERJOIN)
右向外部聯(lián)接(RIGHTOUTERJOIN)
完整外部聯(lián)接(FULLOUTERJOIN)交叉聯(lián)接(CROSSJOIN):也稱作笛卡兒積。第16頁,共34頁,2023年,2月20日,星期一內(nèi)部聯(lián)接(INNERJOIN)典型的聯(lián)接運(yùn)算,也可以叫做等同聯(lián)接,使用類似于“=”或“<>”的比較運(yùn)算符根據(jù)每個表的通用列中的值匹配兩個表中的行。返回結(jié)果集是兩個表中所有相匹配的數(shù)據(jù),而舍棄不匹配的數(shù)據(jù)。第17頁,共34頁,2023年,2月20日,星期一內(nèi)部聯(lián)接(INNERJOIN)XYX
INNERJOIN
Y
ON
X.C=Y.C第18頁,共34頁,2023年,2月20日,星期一內(nèi)部聯(lián)結(jié)
【例】從STUDENT1表和TEACHER表中查詢學(xué)生姓名、所在系、所修的所有課程的課程號及開課教師姓名。SELECTSNAME,S.DNAME,S.CNO,TNAMEFROMSTUDENT1ASS
INNERJOIN
TEACHERASTONS.CNO=T.CNO第19頁,共34頁,2023年,2月20日,星期一練習(xí)查詢學(xué)生修的非本系教師開設(shè)的課程信息,包括學(xué)生的學(xué)號、姓名、所在系、課程號、成績、以及開課教師的姓名。SELECTS.SNO,SNAME,S.DNAME,S.CNO,MARK,TNAMEFROMSTUDENT1ASS
INNERJOIN
TEACHERAST
ONS.CNO=T.CNO
ANDS.DNAME<>T.DNAME第20頁,共34頁,2023年,2月20日,星期一外部聯(lián)接XY左外部聯(lián)結(jié)(LEFTOUTERJOIN)的結(jié)果集包括左表的所有行,而不僅僅是匹配行。表示為:左外連接=內(nèi)連接+左邊表中失配的元組XLEFTOUTERJOINYONX.C=Y.C第21頁,共34頁,2023年,2月20日,星期一外部聯(lián)接右外部聯(lián)結(jié)(RIGHTOUTERJOIN)的結(jié)果集包括右表的所有行,而不僅僅是匹配行。表示為:右外連接=內(nèi)連接+右邊表中失配的元組XRIGHTOUTERJOINYONX.C=Y.CXY第22頁,共34頁,2023年,2月20日,星期一外部聯(lián)接完整外部聯(lián)結(jié)(FULLOUTERJOIN)的結(jié)果集包括左表和右表的所有行,而不僅僅是匹配行。XFULLOUTERJOINYONX.C=Y.CXY第23頁,共34頁,2023年,2月20日,星期一查詢所有學(xué)生的學(xué)號、姓名、課程號、課程名稱、考試時間和成績。即使該學(xué)生所選的課程不包含在COURSE1表內(nèi)。SELECTS.SNO,SNAME,S.CNO,CNAME,CTEST,S.MARKFROMSTUDENT1ASS
LEFTOUTER
JOIN
COURSE1ASC
ONS.CNO=C.CNO實(shí)例第24頁,共34頁,2023年,2月20日,星期一練習(xí)SELECTS.SNO,SNAME,S.CNO,TNAMEFROMSTUDENT1ASS
RIGHTOUTERJOIN
TEACHERAST
ONS.CNO=T.CNO
查詢學(xué)生的學(xué)號、姓名、課程號和授課教師。即使有些老師沒有授課課程。第25頁,共34頁,2023年,2月20日,星期一交叉聯(lián)結(jié)(CROSSJOIN)交叉聯(lián)接:也稱作笛卡兒積。左表中的每一行均與右表中的所有行組合。第26頁,共34頁,2023年,2月20日,星期一交叉聯(lián)結(jié)(CROSSJOIN)SELECTS.SNO,SNAME,S.CNO,CNAME,CTEST,MARKFROMSTUDENT1ASS
CROSSJOINCOURSE1ASC注意:使用CROSSJOIN所得到的只是兩個表的笛卡爾積,得不到想要的結(jié)果。我們可以使用WHERE關(guān)鍵字指定搜索條件,這樣就和內(nèi)連接的作用相同了。WHERES.CNO=C.CNO第27頁,共34頁,2023年,2月20日,星期一自聯(lián)結(jié)自聯(lián)結(jié)是指表與其自身進(jìn)行聯(lián)結(jié)。【例】查詢存在不及格課程的學(xué)生的姓名、所在系、不及格的課程及成績信息。SELECTSNAME,DNAME,CNO,MARKFROMSTUDENT1WHEREMARK<60第28頁,共34頁,2023年,2月20日,星期一查詢存在不及格課程的學(xué)生的姓名、所在系、所有的課程號及成績信息。SELECTDISTINCTS1.SNAME,S1.DNAME,S1.CNO,S1.MARKFROMSTUDENT1ASS1
JOINSTUDENT1ASS2
ON
S1.SNO=S2.SNO
ANDS2.MARK<60
實(shí)例自聯(lián)接中必須為表創(chuàng)建兩個不同的別名,使之成為邏輯上的兩張表。第29頁,共34頁,2023年,2月20日,星期一分析—兩步SELECTdistinctSNOFROMSTUDENT1WHEREMARK<60SELECTSNAME,DNAME,CNO,MARKFROMSTUDENT1WHERESNOIN('9702','9703','9705')ORDERBYSNAME第30頁,共34頁,2023年,2月20日,星期一分析—一步SELECTDISTINCTS1.SNAME,S1.CNO,S1.MARK…FROMSTUDENT1ASS1JOINSTUDENT1ASS2ONS1.SNO=S2.SNOANDS2.MARK<60不加distinct的結(jié)果:第31頁,共34頁,2023年,2月20日,星期一練習(xí)在course表中,查詢課程學(xué)分相同,但名字不同的課程的編號(CNO)、名稱(CNAME)和學(xué)分(CREDIT)。USEteachingSELECTDISTINCTC.CNO,C.CNAME,C.CREDITFROMCOURSEASCJOINCOURSEASCCONC.CREDIT=CC.CREDITANDC.CNAME<>CC.CNAME第32頁,共34頁,2023年,2月20日,星期一使用UNION子句使用UNION子句的查詢稱為聯(lián)合查詢,它可以將兩個或更多查詢的結(jié)果集組合為一個結(jié)果集。
使用UNION組合兩個查詢的結(jié)果集的兩個基本規(guī)則是:(1)所有查詢中的列數(shù)和列的順
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家居空間設(shè)計(jì)中的生活動線優(yōu)化考核試卷
- 流動小吃轉(zhuǎn)讓合同范本
- 酒店吧臺員工合同范本
- 吊頂合資協(xié)議合同范本
- 辦公區(qū)域清潔與維護(hù)工作計(jì)劃
- 農(nóng)村污水處理合同
- 企業(yè)增資擴(kuò)股方案及協(xié)議
- 環(huán)境保護(hù)的重要性征文
- 貨物公路運(yùn)輸合同
- 私人公寓樓房產(chǎn)轉(zhuǎn)讓合同
- 《急性冠狀動脈綜合征》課件
- 《馬克思生平故事》課件
- 2024-2025學(xué)年四川省成都市高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測英語試題(解析版)
- HRBP工作總結(jié)與計(jì)劃
- 八大危險作業(yè)安全培訓(xùn)考試試題及答案
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年上半年中電科太力通信科技限公司招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年沙洲職業(yè)工學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- DB3502T052-2019 家政服務(wù)規(guī)范 家庭搬家
- 【化學(xué)】常見的鹽(第1課時)-2024-2025學(xué)年九年級化學(xué)下冊(人教版2024)
- 2024甘肅省公務(wù)員(省考)行測真題
評論
0/150
提交評論