版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
查詢聯結查詢第1頁,課件共34頁,創(chuàng)作于2023年2月聯接查詢查詢男生的學號、姓名、課程名稱和成績,并按成績從高到低排序。引例:第2頁,課件共34頁,創(chuàng)作于2023年2月涉及的表及字段TEACHER(TNO,TNAME,CNO,SAL,DNAME,TSEX,AGE)COURSE1(CNO,CNAME,CTIME,SCOUNT,CTEST)STUDETN1(SNO,SNAME,DNAME,SSEX,CNO,MARK,TYPE)第3頁,課件共34頁,創(chuàng)作于2023年2月第4頁,課件共34頁,創(chuàng)作于2023年2月1第5頁,課件共34頁,創(chuàng)作于2023年2月1第6頁,課件共34頁,創(chuàng)作于2023年2月聯接查詢的實現
在FROM中指定表,在WHERE子句中指定聯結條件使用JOIN關鍵字,即在FROM子句中實現聯結聯結查詢第7頁,課件共34頁,創(chuàng)作于2023年2月聯結查詢創(chuàng)建表的基本聯結,需要遵守的基本原則:FROM子句中列出所有聯結的表的表名。WHERE子句中定義聯結條件。當列名為多個表共有時,要指明列的所在表。第8頁,課件共34頁,創(chuàng)作于2023年2月1.連接查詢的語法結構連接查詢中用來連接兩個表的條件稱為連接條件或連接謂詞,其形式為:
[<表1>].<列名1><連接運算符>[<表2>].<列名2>常見的連接運算符包括:比較運算符:=、>、<、>=、<=、!=、BETWEEN和AND。邏輯運算符:NOT、AND、OR。使用BETWEEN和AND的連接查詢形式為:
[<表1>].<列名1><BETWEEN>[<表2>].<列名2>AND[<表2>].<列名3>聯結查詢第9頁,課件共34頁,創(chuàng)作于2023年2月2.連接查詢的分類
1)按照是否使用“=”連接運算符分類等值連接:使用“=”。非等值連接:不使用“=”。
2)按照結果集分類:內連接和外連接3.笛卡爾積連接笛卡爾積是不帶連接謂詞的連接,只是兩個表記錄的交叉乘積,其結果會產生一些無意義的組合值。其語法如下:
SELECTselect_listFROMtable1,table2聯結查詢第10頁,課件共34頁,創(chuàng)作于2023年2月一、表的基本聯結—兩個表【例】查詢每個教師的姓名、所在系、所教課程名及該課程的考試時間。SELECTTNAME,DNAME,CNAME,CTESTFROMTEACHER,COURSE1WHERETEACHER.CNO=COURSE1.CNO第11頁,課件共34頁,創(chuàng)作于2023年2月一、表的基本聯結—多個表(復合連接)【例】查詢每個學生的姓名、所在系、所選修課程名稱、該課程的考試時間、考試成績和授課教師姓名。SELECTSNAME,STUDENT1.DNAME,CNAME,CTEST,MARK,TNAMEFROMTEACHER,COURSE1,STUDENT1WHERESTUDENT1.CNO=COURSE1.CNOANDTEACHER.CNO=STUDENT1.CNO第12頁,課件共34頁,創(chuàng)作于2023年2月一、表的基本聯結—使用表別名【例】查詢每個學生的姓名、所在系、所選修課程名稱、該課程的考試時間、考試成績和授課教師姓名。SELECTSNAME,S.DNAME,CNAME,CTEST,MARK,TNAMEFROMTEACHERAST
,COURSE1ASC,STUDENT1SWHERES.CNO=C.CNOANDT.CNO=S.CNO注:使用別名后,在語句中就不能再使用表的原名。第13頁,課件共34頁,創(chuàng)作于2023年2月二、采用JOIN關鍵字建立聯結在FROM子句中實現表的聯結,有助于將聯結條件與WHERE的搜索條件區(qū)分開,WHERE子句包含的搜索條件,用于進一步篩選根據聯結條件選擇的行。第14頁,課件共34頁,創(chuàng)作于2023年2月JOIN聯結的語法格式SELECT……FROMfirst_tablejoin_typesecond_table
ON[(]join_condition[)]WHERE……..【例】FROMSTUDENTJOINS_C
ON(STUDENT.SNO=S_C.SNO)注:1.Join_type:聯結的類型。2.ON子句:指出聯結條件。第15頁,課件共34頁,創(chuàng)作于2023年2月聯接查詢分類內部聯接(INNERJOIN):外部聯接(OUTERJOIN):
左向外部聯接(LEFTOUTERJOIN)
右向外部聯接(RIGHTOUTERJOIN)
完整外部聯接(FULLOUTERJOIN)交叉聯接(CROSSJOIN):也稱作笛卡兒積。第16頁,課件共34頁,創(chuàng)作于2023年2月內部聯接(INNERJOIN)典型的聯接運算,也可以叫做等同聯接,使用類似于“=”或“<>”的比較運算符根據每個表的通用列中的值匹配兩個表中的行。返回結果集是兩個表中所有相匹配的數據,而舍棄不匹配的數據。第17頁,課件共34頁,創(chuàng)作于2023年2月內部聯接(INNERJOIN)XYX
INNERJOIN
Y
ON
X.C=Y.C第18頁,課件共34頁,創(chuàng)作于2023年2月內部聯結
【例】從STUDENT1表和TEACHER表中查詢學生姓名、所在系、所修的所有課程的課程號及開課教師姓名。SELECTSNAME,S.DNAME,S.CNO,TNAMEFROMSTUDENT1ASS
INNERJOIN
TEACHERASTONS.CNO=T.CNO第19頁,課件共34頁,創(chuàng)作于2023年2月練習查詢學生修的非本系教師開設的課程信息,包括學生的學號、姓名、所在系、課程號、成績、以及開課教師的姓名。SELECTS.SNO,SNAME,S.DNAME,S.CNO,MARK,TNAMEFROMSTUDENT1ASS
INNERJOIN
TEACHERAST
ONS.CNO=T.CNO
ANDS.DNAME<>T.DNAME第20頁,課件共34頁,創(chuàng)作于2023年2月外部聯接XY左外部聯結(LEFTOUTERJOIN)的結果集包括左表的所有行,而不僅僅是匹配行。表示為:左外連接=內連接+左邊表中失配的元組XLEFTOUTERJOINYONX.C=Y.C第21頁,課件共34頁,創(chuàng)作于2023年2月外部聯接右外部聯結(RIGHTOUTERJOIN)的結果集包括右表的所有行,而不僅僅是匹配行。表示為:右外連接=內連接+右邊表中失配的元組XRIGHTOUTERJOINYONX.C=Y.CXY第22頁,課件共34頁,創(chuàng)作于2023年2月外部聯接完整外部聯結(FULLOUTERJOIN)的結果集包括左表和右表的所有行,而不僅僅是匹配行。XFULLOUTERJOINYONX.C=Y.CXY第23頁,課件共34頁,創(chuàng)作于2023年2月查詢所有學生的學號、姓名、課程號、課程名稱、考試時間和成績。即使該學生所選的課程不包含在COURSE1表內。SELECTS.SNO,SNAME,S.CNO,CNAME,CTEST,S.MARKFROMSTUDENT1ASS
LEFTOUTER
JOIN
COURSE1ASC
ONS.CNO=C.CNO實例第24頁,課件共34頁,創(chuàng)作于2023年2月練習SELECTS.SNO,SNAME,S.CNO,TNAMEFROMSTUDENT1ASS
RIGHTOUTERJOIN
TEACHERAST
ONS.CNO=T.CNO
查詢學生的學號、姓名、課程號和授課教師。即使有些老師沒有授課課程。第25頁,課件共34頁,創(chuàng)作于2023年2月交叉聯結(CROSSJOIN)交叉聯接:也稱作笛卡兒積。左表中的每一行均與右表中的所有行組合。第26頁,課件共34頁,創(chuàng)作于2023年2月交叉聯結(CROSSJOIN)SELECTS.SNO,SNAME,S.CNO,CNAME,CTEST,MARKFROMSTUDENT1ASS
CROSSJOINCOURSE1ASC注意:使用CROSSJOIN所得到的只是兩個表的笛卡爾積,得不到想要的結果。我們可以使用WHERE關鍵字指定搜索條件,這樣就和內連接的作用相同了。WHERES.CNO=C.CNO第27頁,課件共34頁,創(chuàng)作于2023年2月自聯結自聯結是指表與其自身進行聯結?!纠坎樵兇嬖诓患案裾n程的學生的姓名、所在系、不及格的課程及成績信息。SELECTSNAME,DNAME,CNO,MARKFROMSTUDENT1WHEREMARK<60第28頁,課件共34頁,創(chuàng)作于2023年2月查詢存在不及格課程的學生的姓名、所在系、所有的課程號及成績信息。SELECTDISTINCTS1.SNAME,S1.DNAME,S1.CNO,S1.MARKFROMSTUDENT1ASS1
JOINSTUDENT1ASS2
ON
S1.SNO=S2.SNO
ANDS2.MARK<60
實例自聯接中必須為表創(chuàng)建兩個不同的別名,使之成為邏輯上的兩張表。第29頁,課件共34頁,創(chuàng)作于2023年2月分析—兩步SELECTdistinctSNOFROMSTUDENT1WHEREMARK<60SELECTSNAME,DNAME,CNO,MARKFROMSTUDENT1WHERESNOIN('9702','9703','9705')ORDERBYSNAME第30頁,課件共34頁,創(chuàng)作于2023年2月分析—一步SELECTDISTINCTS1.SNAME,S1.CNO,S1.MARK…FROMSTUDENT1ASS1JOINSTUDENT1ASS2ONS1.SNO=S2.SNOANDS2.MARK<60不加distinct的結果:第31頁,課件共34頁,創(chuàng)作于2023年2月練習在course表中,查詢課程學分相同,但名字不同的課程的編號(CNO)、名稱(CNAME)和學分(CREDIT)。USEteachingSELECTDISTINCTC.CNO,C.CNAME,C.CREDITFROMCOURSEASCJOINCOURSEASCCONC.CREDIT=CC.CREDITANDC.CNAME<>CC.CNAME第32頁,課件共34頁,創(chuàng)作于2023年2月使用UNION子句使用UNION子句的查詢稱為聯合查詢,它可以將兩個或更多查詢的結果集組合為一個結果集。
使用UNION組合兩個查詢的結果集的兩個基本規(guī)則是:(1)所有查詢中的列數和列的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024工程招標合同范本
- 2024年度云服務租賃合同
- 公司春節(jié)晚會活動策劃3篇
- 2024年度智能家居安防監(jiān)控系統(tǒng)安裝與維護合同
- 2024年商業(yè)物業(yè)管理合同
- 2024雙方關于環(huán)保設備的買賣合同
- 2024年廢物分類與回收協議
- 2024年度CFG樁基工程項目管理合同
- 2024年度產品質量保證與維修服務合同
- 2024年夫妻雙方關于房產買賣及產權分配協議
- 2024版人教版英語初一上單詞默寫單
- 化學實驗室安全智慧樹知到期末考試答案2024年
- 經典房地產營銷策劃培訓(全)
- 工人入場安全教育課件
- 【川教版】《生命 生態(tài) 安全》二年級上冊第12課 少點兒馬虎 多點兒收獲 課件
- 人教版數學四年級上冊第五單元 《平行四邊形和梯形》 大單元作業(yè)設計
- 靜配中心差錯預防
- 送教上門體育、健康教案教學內容
- 高夫品牌市場分析報告
- 職業(yè)規(guī)劃書-數字化設計與制造技術
- 國家臨床重點??平ㄔO項目申報書
評論
0/150
提交評論