第一篇:3數(shù)據(jù)庫(kù)查詢實(shí)驗(yàn)
實(shí)驗(yàn)三 數(shù)據(jù)庫(kù)查詢實(shí)驗(yàn)
(3)數(shù)據(jù)庫(kù)的組合查詢和統(tǒng)計(jì)查詢實(shí)驗(yàn)
課時(shí)安排:2課時(shí)
一、實(shí)驗(yàn)?zāi)康暮鸵?/p>
使學(xué)生熟練掌握SQL Server查詢分析器的使用方法.加深對(duì)SQL和Transact-SQL語(yǔ)言的查詢語(yǔ)句的理解。熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計(jì)、計(jì)算和組合的操作方法。
二、實(shí)驗(yàn)內(nèi)容 分組查詢實(shí)驗(yàn)該實(shí)驗(yàn)包括分組條件表達(dá)、選擇組條件的表達(dá)方法。使用函數(shù)查詢的實(shí)驗(yàn)。該實(shí)驗(yàn)包括統(tǒng)計(jì)函數(shù)和分組統(tǒng)計(jì)函數(shù)的使用方法。
組合查詢實(shí)驗(yàn)。計(jì)算和分組計(jì)算查詢的實(shí)驗(yàn)。
三、實(shí)驗(yàn)方法
將查詢需求用 Transact-SQL語(yǔ)言表示;在 SQL Server查詢分析器的輸入?yún)^(qū)中輸入Transact-SQL查詢語(yǔ)句:設(shè)置查詢分析器的結(jié)果區(qū)為Standard Execute(標(biāo)準(zhǔn)執(zhí)行)或Executeto Grid(網(wǎng)格執(zhí)行)方式.發(fā)布執(zhí)行命令 并在結(jié)果區(qū)中查看查詢結(jié)果;如果結(jié)果不正確要進(jìn)行修改.直到正確為止。
四、實(shí)驗(yàn)步驟
基本操作實(shí)驗(yàn)
在圖書(shū)借閱庫(kù)中實(shí)現(xiàn)其查詢操作。
(1)查找這樣的圖書(shū)類別:要求類別中最高的圖書(shū)定價(jià)不低于全部按類別分組的圖書(shū)平均定價(jià)的2倍。
(2)求機(jī)械工業(yè)出版社出版的各類圖書(shū)的平均定價(jià),用GROUPBY表示。
(3)列出計(jì)算機(jī)類圖書(shū)的書(shū)號(hào)、名稱及價(jià)格.最后求出冊(cè)數(shù)和總價(jià)格。
(4)列出計(jì)算機(jī)類圖書(shū)的書(shū)號(hào)、名稱及價(jià)格 并求出各出版社這類書(shū)的總價(jià)格.最后求出全部?jī)?cè)數(shù)和總價(jià)格。
(5)查詢計(jì)算機(jī)類和機(jī)械工業(yè)出版社出版的圖書(shū)。
提高操作實(shí)驗(yàn)
將自設(shè)計(jì)的數(shù)據(jù)庫(kù)應(yīng)用項(xiàng)目中的分組、統(tǒng)計(jì)、計(jì)算和組合查詢用Transact-SQL語(yǔ)句表示.并通過(guò)SQL Server 查詢分析器實(shí)現(xiàn)其查詢操作。
五、實(shí)驗(yàn)報(bào)告要求 分別用SQL和Transact-SQLL寫(xiě)出實(shí)驗(yàn)操作的查詢語(yǔ)句 對(duì)兩種語(yǔ)言進(jìn)行比較。
實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)中的問(wèn)題和提高。
六、注意事項(xiàng) 子句WHERE<條件>表示元組篩選條件,子句HAVING <條件>表示組選擇條件。組合查詢的子句間不能有語(yǔ)句結(jié)束符。子句HAVING<條件>必須和GROUP BY <分組字段>子句配合使用。
七、思考題 組合查詢語(yǔ)句是否可以用其他語(yǔ)句代替,有什么不同? 使用 GROUP BY <分組條件>子句后,語(yǔ)句中的統(tǒng)計(jì)函數(shù)的運(yùn)行結(jié)果有什么不同?
第二篇:實(shí)驗(yàn)5 數(shù)據(jù)庫(kù)的嵌套查詢實(shí)驗(yàn)
實(shí)驗(yàn)五
數(shù)據(jù)庫(kù)的嵌套查詢實(shí)驗(yàn)
1、實(shí)驗(yàn)?zāi)康?/p>
本實(shí)驗(yàn)的目的是使學(xué)生進(jìn)一步掌握SQL Server查詢分析器的使用方法,加深SQL語(yǔ)言的嵌套查詢語(yǔ)句的理解
2、實(shí)驗(yàn)時(shí)數(shù)
2學(xué)時(shí)
3、實(shí)驗(yàn)內(nèi)容
本實(shí)驗(yàn)的主要內(nèi)容是:在SQL Server查詢分析器中使用IN、比較符、ANY或ALL和EXISTS操作符進(jìn)行嵌套查詢操作。
具體完成以下例題。將它們用SQL語(yǔ)句表示,在學(xué)生數(shù)據(jù)庫(kù)中實(shí)現(xiàn)其數(shù)據(jù)嵌套查詢操作。
1、查詢選修了高等數(shù)學(xué)的學(xué)生學(xué)號(hào)和姓名 select Sno,Sname from Student where Sno in(select Sno from SC,Course where SC.Cno=Course.Cno and Cname='數(shù)學(xué)')
2、查詢1號(hào)課程的成績(jī)高于劉晨的1號(hào)課程成績(jī)的學(xué)生學(xué)號(hào)和成績(jī) select SC.Sno,Grade from SC,Student where Cno='1' and SC.Sno=Student.Sno and Grade>all(select Grade from SC,Student where SC.Sno=Student.Sno and Sname='劉晨')
3、查詢其他系中比cs系某一學(xué)生年齡小的學(xué)生(即年齡小于計(jì)算機(jī)系年齡最大者的學(xué)生)select * from Student where Sdept!='cs' and Sage 4、查詢其他系中比cs系所有學(xué)生年齡都小的學(xué)生 select * from Student where Sdept!='cs' and Sage 5、查詢選修了2號(hào)課程的學(xué)生姓名 select Sname from Student where Sno in(select Student.Sno from SC,Student where SC.Sno=Student.Sno and Cno='2') 6、查詢沒(méi)有選修2號(hào)課程的學(xué)生姓名 elect Sname from Student where exists(select SC.Sno from SC,Student where Cno!='2' group by SC.Sno) 7、查詢選修了全部課程的學(xué)生姓名 Select * from SC where Cno=all(select Cno from Course) 8、求至少選修了學(xué)號(hào)為“00215122”的學(xué)生所選修全部課程的學(xué)生學(xué)號(hào)和姓名 select Sno,Sname from Student where Sno in(select Student.Sno from Student,SC where Student.Sno=SC.Sno and Cno=any(select Cno from SC where Sno='00215122')) 4、實(shí)驗(yàn)方法 將查詢需求用SQL語(yǔ)言表示:在SQL Server查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語(yǔ)句:設(shè)置查詢分析器的結(jié)果區(qū)為Standard Execute(標(biāo)準(zhǔn)執(zhí)行)或Execute to Grid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;如果結(jié)果不正確,要進(jìn)行修改,直到正確為止。 5、實(shí)驗(yàn)心得體會(huì) 本次實(shí)驗(yàn)還是進(jìn)行查詢操作,只是在第四次試驗(yàn)的基礎(chǔ)上加入了嵌套,嵌套查詢是在我們以后進(jìn)行軟件開(kāi)發(fā)涉及數(shù)據(jù)庫(kù)常用的查詢操作,通過(guò)實(shí)驗(yàn)有助于我們對(duì)嵌套查詢的理解,對(duì)我們熟練的使用SQL查詢語(yǔ)句進(jìn)行查詢操作有很大幫助。 實(shí)驗(yàn)六 綜合練習(xí) 一、實(shí)驗(yàn)?zāi)康?/p> 熟練掌握SQL語(yǔ)句的使用 二、實(shí)驗(yàn)內(nèi)容 1.查詢成績(jī)?cè)?0~90之間的記錄 2.查詢至少有2個(gè)同學(xué)選修的課程名 3.查詢其他系中比“信息系”所有學(xué)生年齡都小的學(xué)生名單以及年齡,并按年齡降序輸出 4.查詢與學(xué)生“張立”同歲的學(xué)生姓名 5.查詢選修了兩門以上課程的學(xué)生名單 6.查詢成績(jī)比該課程平均成績(jī)高的學(xué)生名單以及成績(jī),輸出課程號(hào)、平均分、學(xué)號(hào),成績(jī)。 7.查詢每個(gè)學(xué)生各門課程的平均成績(jī)和最高成績(jī),按降序輸出姓名、平均成績(jī)和最高成績(jī) 8.查詢所有未選01號(hào)課程的學(xué)生名單 9.查詢選修了“200215122”號(hào)學(xué)生選修了的課程的學(xué)生學(xué)號(hào)和姓名 10.查詢所有學(xué)生都選修了的課程的課程號(hào)和課程名 三.心得體會(huì) 此次試驗(yàn)涉及到單表查詢,多表查詢,查詢中用到了比較運(yùn)算符,子查詢,自身連接等多種方法,要求我們必須熟練掌握SQL語(yǔ)言才能高效快速的完成練習(xí)。同時(shí)應(yīng)該仔細(xì)認(rèn)真地理解題目意思才能防止各類錯(cuò)誤的出現(xiàn)。 實(shí)驗(yàn)1.1 使用SQL Server工具(Microsoft SQL Server Management Studio Express)管理數(shù)據(jù)庫(kù) 實(shí)驗(yàn)內(nèi)容: (1)使用SSMS(SQL Server Management Studio)加入實(shí)驗(yàn)數(shù)據(jù)庫(kù)。(2)使用SSMS可視化建立、修改和刪除數(shù)據(jù)庫(kù)、表。(3)使用SSMS對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份和恢復(fù)。 (4)使用SSMS對(duì)表進(jìn)行查詢、插入、修改、刪除。實(shí)驗(yàn)步驟: (1)加入School數(shù)據(jù)庫(kù)。(2)建立Test數(shù)據(jù)庫(kù)。 (3)在數(shù)據(jù)庫(kù)中建立人員表PERSON(P#,Pname,Page)。更改表設(shè)置P#為主鍵,增加屬性Ptype(類型是CHAR,長(zhǎng)度是10)。 (4)用SSMS的查詢功能(新建查詢)對(duì)PERSON表進(jìn)行查詢、插入、修改、刪除等操作:首先插入兩條記錄;修改第二條記錄;刪除第二條記錄。(5)備份Test數(shù)據(jù)庫(kù)。(6)刪除表PERSON。(7)恢復(fù)Test數(shù)據(jù)庫(kù)。(8)刪除Test數(shù)據(jù)庫(kù)。 3.實(shí)驗(yàn)步驟 在學(xué)生選課數(shù)據(jù)庫(kù)中實(shí)現(xiàn)其查詢操作,寫(xiě)出T-SQL語(yǔ)句(注:學(xué)生選課數(shù)據(jù)庫(kù)為前三次實(shí)驗(yàn)課所建立的數(shù) 據(jù)庫(kù)) 一、簡(jiǎn)單查詢實(shí)驗(yàn) (1)查詢選修了課程的學(xué)生學(xué)號(hào)。 (2)查詢選修課程號(hào)為0101的學(xué)生學(xué)號(hào)和成績(jī),并要求對(duì)查詢結(jié)果按成績(jī)降序排列,如果成績(jī)相同則按 學(xué)號(hào)升序排列。 (3)查詢選修課程號(hào)為0101的成績(jī)?cè)?0~90分之間的學(xué)生學(xué)號(hào)和成績(jī),并將成績(jī)乘以系數(shù)0.8輸出。 二、連接查詢實(shí)驗(yàn) (1)查詢每個(gè)學(xué)生的情況以及他(她)所選修的課程。 (2)查詢選修離散散學(xué)課程且成績(jī)?yōu)?0分以上的學(xué)生學(xué)號(hào)、姓名及成績(jī)。 (3)查詢每一門課的間接先行課(即先行課的先行課) 三、嵌套查詢操作 (1)查詢0101課程的成績(jī)高于張林的學(xué)生學(xué)號(hào)和成績(jī)。 (2)查詢其他系中年齡小于計(jì)算機(jī)系年齡最大者的學(xué)生。 (3)查詢同王洪敏“數(shù)據(jù)庫(kù)原理”課程分?jǐn)?shù)相同的學(xué)生的學(xué)號(hào)。 (4)查詢選修了全部課程的學(xué)生的姓名。 (5)查詢與學(xué)號(hào)為09001103的學(xué)生所選修的全部課程相同的學(xué)生學(xué)號(hào)和姓名。 (6)查詢至少選修了學(xué)號(hào)為09001103的學(xué)生所選修的全部課程的學(xué)生學(xué)號(hào)和姓名。 四、組合查詢和分組查詢 (1)查找選修“計(jì)算機(jī)基礎(chǔ)”課程的學(xué)生成績(jī)比此課程的平均成績(jī)大的學(xué)生學(xué)號(hào)、成績(jī)。 (2)查詢年齡大于女同學(xué)平均年齡的男同學(xué)姓名和年齡。 (3)列出各系學(xué)生的總?cè)藬?shù),并按人數(shù)進(jìn)行降序排列。 (5)查詢選修計(jì)算機(jī)基礎(chǔ)和離散數(shù)學(xué)的學(xué)生學(xué)號(hào)和平均成績(jī)。 4、要求 請(qǐng)按題號(hào)依次作答,完成在word文檔中,寫(xiě)明班級(jí)學(xué)號(hào)姓名,于周日之于周日之前發(fā)至xcf7@163.com,獨(dú)立完成,嚴(yán)禁抄第三篇:數(shù)據(jù)庫(kù)實(shí)驗(yàn)(查詢的綜合練習(xí))
第四篇:數(shù)據(jù)庫(kù)實(shí)驗(yàn)
第五篇:數(shù)據(jù)庫(kù)實(shí)驗(yàn)