資源描述:
《實(shí)驗(yàn)05 復(fù)雜數(shù)據(jù)查詢.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、實(shí)驗(yàn)5復(fù)雜數(shù)據(jù)查詢實(shí)驗(yàn)?zāi)康?.掌握使用T-SQL的SELECT語句進(jìn)行復(fù)雜查詢的方法2.掌握在SELECT語句中使用集合函數(shù)的方法3.掌握在SELECT語句中使用GROUPBY/HAVING子句的方法4.掌握嵌套查詢的操作方法5.掌握數(shù)據(jù)更新語句INSERTINTO、UPDATE、DELETE的使用方法實(shí)驗(yàn)準(zhǔn)備還原studentdb數(shù)據(jù)庫,包含各表如圖5-1所示。圖5-1數(shù)據(jù)庫studentdb表關(guān)系圖實(shí)驗(yàn)內(nèi)容及步驟1.打開查詢分析器,選擇當(dāng)前數(shù)據(jù)庫為studentdb。2.在SELECT語句中使用集合函數(shù)(1)查詢2008級的學(xué)生總數(shù)。selectcount(*)as學(xué)生總數(shù)from學(xué)生wh
2、ere年級=2008(2)查詢2008級學(xué)生課程代碼為1304的平均總評成績、考試成績的最高分和最低分。selectavg(總評成績)平均成績,max(考試成績)最高分,min(考試成績)最低分from成績where課程代碼=1304and年級=20082.在SELECT語句中使用分組匯總(GROUPBY/HAVING子句)。(1)查詢2008年入校的男學(xué)生和女學(xué)生的個(gè)數(shù)。select性別,count(*)學(xué)生數(shù)from學(xué)生where進(jìn)校時(shí)間='2008-09-01'groupby性別(2)查詢2008級課程代碼為1304的不同專業(yè)的平均總評成績。select專業(yè),avg(總評成績)as平均成
3、績from成績where年級=2008and課程代碼=1304groupby專業(yè)(3)查詢2008級課程代碼為1304且平均總評成績在95分以上的專業(yè)代碼及平均成績。select專業(yè),avg(總評成績)as平均成績from成績where年級=2008and課程代碼=1304groupby專業(yè)havingavg(總評成績)>=903.使用嵌套查詢(1)查詢“計(jì)算機(jī)文化基礎(chǔ)”的考試成績。select學(xué)號,專業(yè),年級,班序號,總評成績from成績where課程代碼=(select課程代碼from課程where課程名稱='計(jì)算機(jī)文化基礎(chǔ)')(1)用IN子查詢查找2008級課程1304總評成績?yōu)?00分
4、的學(xué)生學(xué)號、姓名、性別、專業(yè)。select學(xué)號,姓名,性別,專業(yè)from學(xué)生where學(xué)號in(select學(xué)號from成績where年級=2008and課程代碼=1304and總評成績=100)(2)查詢學(xué)號為2008242330的學(xué)生的分?jǐn)?shù)比2008242331號學(xué)生的最低分?jǐn)?shù)高的課程代碼和分?jǐn)?shù)。select課程代碼,總評成績from成績where學(xué)號='2008242330'and總評成績>any(select總評成績from成績where學(xué)號='2008242331')(3)查詢學(xué)號為2008242330的學(xué)生的分?jǐn)?shù)比2008242331號學(xué)生的最高分?jǐn)?shù)還要高的課程代碼和分?jǐn)?shù)。sele
5、ct課程代碼,總評成績from成績where學(xué)號='2008242330'and總評成績>all(select總評成績from成績where學(xué)號='2008242331')2.數(shù)據(jù)更新。(1)在studentdb數(shù)據(jù)庫中創(chuàng)建新表stinfo,表結(jié)構(gòu)如圖5-2。圖5-2stinfo表結(jié)構(gòu)(1)使用INSERTINTO語句通過學(xué)生表將2008級學(xué)生的學(xué)號、姓名、性別數(shù)據(jù)追加到新表stinfo中。insertintostinfo(學(xué)號,姓名,性別)select學(xué)號,姓名,性別from學(xué)生where年級=2008插入完成后查詢新表stinfo數(shù)據(jù):select*fromstinfo(2)使用UPDAT
6、E語句通過成績表更新stinfo總成績。updatestinfoset總成績=(selectsum(總評成績)from成績wherestinfo.學(xué)號=成績.學(xué)號)查詢表stinfo數(shù)據(jù):select*fromstinfo(3)使用DELETE語句刪除表stinfo男同學(xué)的學(xué)生記錄。deletefromstinfowhere性別='男'查詢表stinfo數(shù)據(jù):select*fromstinfo實(shí)驗(yàn)思考1.查詢2008級課程代碼為1304且平均總評成績在90分以上的專業(yè)代碼、專業(yè)名稱及平均成績。2.HAVING子句與WHERE子句的區(qū)別是什么?3.用內(nèi)連接查詢(INNERJOIN)實(shí)現(xiàn)4(2)要
7、求的查詢結(jié)果。