sql連接、嵌套和集合查詢.doc

sql連接、嵌套和集合查詢.doc

ID:57894239

大小:36.50 KB

頁(yè)數(shù):8頁(yè)

時(shí)間:2020-09-02

sql連接、嵌套和集合查詢.doc_第1頁(yè)
sql連接、嵌套和集合查詢.doc_第2頁(yè)
sql連接、嵌套和集合查詢.doc_第3頁(yè)
sql連接、嵌套和集合查詢.doc_第4頁(yè)
sql連接、嵌套和集合查詢.doc_第5頁(yè)
資源描述:

《sql連接、嵌套和集合查詢.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、sql連接、嵌套和集合查詢一、連接查詢1?不同表之間的連接查詢例1.37??查詢每個(gè)學(xué)生及其選修課程的情況。本查詢實(shí)際上是涉及Students與Reports兩個(gè)表的連接操作。這兩個(gè)表之間的聯(lián)系是通過(guò)公共屬性Sno實(shí)現(xiàn)的,因此,其操作命令為:SELECT??Students.*,?Reports.*FROM??Students,?ReportsWHERE??Students.Sno?=?Reports.Sno;?說(shuō)明:若在以上等值連接中把目標(biāo)列中重復(fù)的屬性列去掉則為自然連接,其命令為SELECT??Students

2、.Sno,?Sname,?Ssex,?Sage,?Sdept,?Cno,?GradeFROM??Students,?ReportsWHERE??Students.Sno=?Reports.Sno;例1.38?查詢每個(gè)學(xué)生的學(xué)號(hào)(Sno)、姓名(Sname)、選修的課程名(Cname)及成績(jī)(Grade)。本查詢涉及到三個(gè)表的連接操作,完成該查詢的SQL語(yǔ)句如下:SELECT??Students.Sno,?Sname,?Cname,?GradeFROM??Students,?Reports,?CoursesWHERE

3、??Students.Sno=?Reports.Sno?AND?Reports.Cno=Courses.Cno;2?自身連接例1.39?查`詢每一門(mén)課的間接先修課(即先修課的先修課)。在Courses表關(guān)系中,只有每門(mén)課的直接先修課信息,而沒(méi)有先修課的先修課。要得到這個(gè)信息,必須先對(duì)一門(mén)課找到其先修課,再按此先修課的課程號(hào),查找它的先修課程。這就需要要將Courses表與其自身連接。為方便連接運(yùn)算,這里為Courses表取兩個(gè)別名分別為A,B。則完成該查詢的SQL語(yǔ)句為:SELECT??A.Cno,?A.Cname

4、,?B.Pre_CnoFROM??Courses??A,?Courses??BWHERE??A.Pre_Cno?=B.Cno;3?外連接例1.40把例1.37中的等值連接改為左連接。該左連接操作在SQL?Server?2000中的命令格式為:SELECT?Students.Sno,?Sname,?Ssex,?Sdept,?Cno,?GradeFROM?StudentsLEFT?JOIN?Reports?ONStudents.Sno=?Reports.Sno;說(shuō)明:以上左連接操作也可以用如下的右連接操作代替,其結(jié)果完

5、全一樣。SELECT?Students.Sno,?Sname,?Ssex,?Sdept,?Cno,?GradeFROM?ReportsRIGHT?JOIN?Students?ONReports.Sno=Students.Sno;二、嵌套查詢1?帶謂詞IN的嵌套查詢例1.41?查詢選修了編號(hào)為“C02”的課程的學(xué)生姓名(Sname)和所在系(Sdept)。SELECT??Sname,?SdeptFROM??StudentsWHERE??Sno??IN??????????(SELECT??Sno????????????

6、FROM??Reports???????????WHERE??Cno='C02');例1.42?查詢與“李偉”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)(Sno)、姓名(Sname)和系名(Sdept)。該查詢可構(gòu)造嵌套查詢實(shí)現(xiàn),其SQL語(yǔ)句如下:SELECT??Sno,?Sname,?SdeptFROM??StudentsWHERE??Sdept??IN?????????(SELECT??Sdept??????????FROM??Students??????????WHERE??Sname=’李偉’);說(shuō)明:本例中的查詢也可以用自

7、身連接來(lái)完成,其SQL語(yǔ)句如下:SELECT??A.Sno?,?A.Sname?,?A.SdeptFROM??Students?A?,?Students?BWHERE??A.Sdept=B.Sdept?AND?B.Sname=’李偉’;例1.43??查詢選修了課程名為“數(shù)據(jù)結(jié)構(gòu)”的學(xué)生學(xué)號(hào)(Sno)和姓名(Sname)。本查詢涉及學(xué)號(hào)、姓名和課程名(Cname)三個(gè)屬性。學(xué)號(hào)和姓名存放在Students表中,課程名的存放在Courses表中,但Students與Courses兩個(gè)表之間沒(méi)有公共屬性,必須通過(guò)Repo

8、rts表建立它們之間的聯(lián)系。所以本查詢實(shí)際上涉及三個(gè)關(guān)系的連接操作。SELECT??Sno,?Sname???????????????????????????FROM??Students?????????????????????????????????WHERE??Sno??IN???????(SELECT??Sno?????????????????????

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。