實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)

實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)

ID:38698980

大?。?6.00 KB

頁數(shù):7頁

時間:2019-06-17

實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)_第1頁
實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)_第2頁
實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)_第3頁
實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)_第4頁
實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)_第5頁
資源描述:

《實驗五 連接查詢、嵌套查詢與聯(lián)合查詢 實驗指導(dǎo)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、實驗五連接查詢、嵌套查詢與聯(lián)合查詢實驗指導(dǎo)一、連接查詢前面的查詢都是在單個表中進(jìn)行的查詢。在數(shù)據(jù)庫的實際編程應(yīng)用中,往往需要查詢許多數(shù)據(jù),有可能這些數(shù)據(jù)出現(xiàn)在兩個或兩個以上的表中,而我們希望這些數(shù)據(jù)出現(xiàn)在一個結(jié)果集中,這就要用到連接查詢。在SQLServer中,可以使用兩種語法形式:一種是ANSI連接語法形式,連接寫在FROM子句中,使用JOIN…ON關(guān)鍵字。另一種是早期SQLSERVER連接語法形式,連接寫在WHERE子句中。在SQLSERER中可以設(shè)定兼容級別為80及以下(在對象資源管理器中展開相應(yīng)的數(shù)據(jù)庫,右

2、擊,選擇“屬性”,在彈出的“數(shù)據(jù)庫屬性”對話框中選擇“選項”,有兼容級別設(shè)置)才能使用這種形式。在SQLServer2008中推薦使用ANSI形式的連接。兩種連接的語法格式如下。SQLServer連接的語法格式:SELECT<查詢列表>FROM表1,表2WHERE表1.列1<比較運算符>表2.列2其中比較運算符可以是:=、>、<、>=、<=、<>等。說明:l連接的列(屬性)名可不相同,但數(shù)據(jù)類型必須兼容。l當(dāng)<比較運算符>是“=”時,稱等值連接,否則為非等值連接。ANSI連接的語法形式如下:SELECT表名.列名[

3、,…n]FROM{表名1[連接類型]JOIN表名2ON連接條件}[,…n]WHERE查詢條件連接查詢包括以下幾種類型。1.內(nèi)連接從兩個或兩個以上的表的組合中,挑選出符合連接條件的數(shù)據(jù)。如果數(shù)據(jù)無法滿足連接條件,則將其丟棄。通常稱這種方法為內(nèi)部連接INNERJOIN。在內(nèi)部連接中,參與連接的表的地位是平等的。它有兩種形式:等值連接和自然連接。等值連接會產(chǎn)生冗余列,因為它將連接條件中的共享列顯示兩次。而自然連接則清除了等值連接產(chǎn)生的冗余列,因此我們所說的內(nèi)連接在沒有特殊說明時都指的是自然連接。例1查詢所有學(xué)生的選課信息

4、(包含學(xué)號、姓名、課程編號)。用SQLServer形式進(jìn)行連接:7SELECTstudent.sno,sname,cnoFROMstudent,scWHEREstudent.sno=sc.sno用ANSI形式進(jìn)行連接:SELECTstudent.sno,sname,cnoFROMstudentINNERJOINscONstudent.sno=sc.sno2.外連接在使用內(nèi)連接查詢時,只包含兩表中都滿足連接條件的行,而外連接會把某些不滿足條件的行顯示出來。在外部連接中,參與連接的表有主從之分。以主表的每行數(shù)據(jù)去匹配從

5、表的數(shù)據(jù)列,符合連接條件的數(shù)據(jù)將直接返回到結(jié)果集中。對那些不符合連接條件的列將被填上NULL值后再返回到結(jié)果集中。對BIT類型的列,由于BIT數(shù)據(jù)類型不允許NULL值,因此將會被填上0值再返回到結(jié)果中。外部連接分為左外連接LEFTOUTERJOIN、右外連接RIGHTOUTERJOIN和全連接三種。以主表所在的方向區(qū)分外部連接。(1)左外連接。左外連接指主表在左邊,即在連接兩表時,保留左表中的不匹配行,右表的相應(yīng)行用NULL或0值。例2查詢每個學(xué)生及其選修課程的情況包括沒有選修課程的學(xué)生。SELECTStudent

6、.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudentLEFTOUTERJOINSCON(Student.Sno=SC.Sno)(2)右外連接。右外連接指主表在右邊,即在連接兩表時,保留右表中的不匹配行,左表的相應(yīng)行用NULL或0值。(3)全連接。在連接兩表時,保留兩表中的不匹配行。全連接的語法只有ANSI形式一種,使用FULLOUTERJOIN關(guān)鍵字。全連接生成的結(jié)果記錄集將會很多。一般不大使用,就不舉例了。3.無限制連接也稱為交叉連接,它可能會產(chǎn)生一個龐大的結(jié)果集,因為其

7、中包含了所連接的表中所有行的全部組合。如在某連接中,一個表的記錄數(shù)是5,另一個表的記錄數(shù)是6,那么結(jié)果集就有5*6(30)條記錄。交叉連接在ANSI形式中使用CROSSJOIN關(guān)鍵字。4.自身連接連接除了可以在多個不同的表中進(jìn)行外,也可以在同一個表中進(jìn)行連接,即自身連接。自身連接可以看作一張表的兩個副本之間進(jìn)行的連接。在自連接中,必須為表指定兩個別名,使之在邏輯上成為兩張表。7例3查詢每一門課的間接先修課(即先修課的先修課)。SELECTFIRST.Cno,SECOND.CpnoFROMCourseFIRSTINN

8、ERJOINCourseSECONDONFIRST.Cpno=SECOND.Cno二、嵌套查詢子查詢指在一個外層查詢中包含另一個內(nèi)層查詢,即在一個SELECT語句中的WHERE子句中,包含有另一個SELECT語句,或者將一個SELECT語句作為另一個SELECT語句的新增列。外層的查詢成為主查詢,WHERE子句中包含的SELECT語句被稱為子查詢。一般將子查

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

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

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