資源描述:
《SQL多表查詢操作》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、SQL多表查詢操作Computer&ControlInstitute,GuilinUniversityofElectronicTechnology問題如果給你兩張A4紙,其中一張上記錄的是所有學生的基本信息,一張表記錄的是選課信息,脫離SQL的環(huán)境,你會如何做來找出滿足這樣條件的記錄:“查找選修了’ZB003’號課程的學生的姓名”。SnoSnameSsexSageSdept09101胡爽男20通信09302梅嵐女21計算機09301周丹陽男20計算機09102鄭燦燦女19通信SnoCnoGrade093
2、01ZB0038209102ZB0038509101ZB0038009101BT0015509102BT0017009101ZB0029009102ZB0028009101BT004NULLCnoCnameCpnoCcreditBT001計算機網(wǎng)絡(luò)NULL3ZB002數(shù)據(jù)結(jié)構(gòu)ZB0034ZB003離散數(shù)學NULL4BT004操作系統(tǒng)ZB0023一張表的查詢操作給我們的啟示如果要查找學號為“09301”的學生的基本信息SELECT*FROMStudentWHERESno=‘09301’SnoSnameSs
3、exSageSdept09101胡爽男20通信09302梅嵐女21計算機09301周丹陽男20計算機09102鄭燦燦女19通信一張表的查詢操作給我們的啟示既然我們能夠熟練地對一張表進行操作,那么我們可以考慮是否應(yīng)該將兩張表先轉(zhuǎn)換成一張表,再使用基于一張表的操作方法來進行查詢?思考問題:如果要將兩張表連接成一張表,都有哪些方法?其中哪些方法是高效的?SnoSnameSsexSageSdept09101胡爽男20通信09302梅嵐女21計算機09301周丹陽男20計算機09102鄭燦燦女19通信SnoCno
4、Grade09301ZB0038209102ZB0038509101ZB0038009101BT0015509102BT0017009101ZB0029009102ZB0028009101BT004NULLStudent.SnoSnameSsexSageSdeptSC.SnoCnoGrade問題:連接以后的表中的數(shù)據(jù)是什么?如何確定?SnoSnameSsexSageSdept09101胡爽男20通信09302梅嵐女21計算機09301周丹陽男20計算機09102鄭燦燦女19通信SnoCnoGrade09
5、301ZB0038209102ZB0038509101ZB0038009101BT0015509102BT0017009101ZB0029009102ZB0028009101BT004NULL方案一:基于笛卡爾積的全連接操作全連接以后形成的部分效果Student.SnoSnameSsexSageSdeptSC.SnoCnoGrade09101胡爽男20通信09301ZB0038209101胡爽男20通信09102ZB0038509101胡爽男20通信09101ZB0038009101胡爽男20通信091
6、01BT0015509101胡爽男20通信09102BT0017009101胡爽男20通信09101ZB0029009101胡爽男20通信09102ZB0028009101胡爽男20通信09101BT004NULL……………………顯然,上述全連接的結(jié)果中存在不合理的記錄,應(yīng)該被剔除,形成如下的查詢結(jié)果:SELECTSnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDCno=‘ZB003’業(yè)務(wù)查詢條件有效連接條件SnoSnameSsexSageSdept09101胡爽
7、男20通信09302梅嵐女21計算機09301周丹陽男20計算機09102鄭燦燦女19通信SnoCnoGrade09301ZB0038209102ZB0038509101ZB0038009101BT0015509102BT0017009101ZB0029009102ZB0028009101BT004NULL方案二:基于有效連接的(內(nèi)、外)連接方案比較Student.Sno=SC.Sno?內(nèi)連接以后形成的部分效果Student.SnoSnameSsexSageSdeptSC.SnoCnoGrade0910
8、1胡爽男20通信09101ZB0038009101胡爽男20通信09101BT0015509101胡爽男20通信09101ZB0029009101胡爽男20通信09101BT004NULL…………………………………………SnoSnameSsexSageSdept09101胡爽男20通信09302梅嵐女21計算機09301周丹陽男20計算機09102鄭燦燦女19通信SnoCnoGrade09301ZB0038209102ZB003850910