【正文】
其中有許多知識(shí)老師在課上是講過的,但是我發(fā)現(xiàn)光聽是不夠的,必須是自己動(dòng)手做,還需要自己課下摸索,這次試驗(yàn)中可能還存在著問題,我會(huì)在老師的指導(dǎo)下慢慢學(xué)會(huì)改正,最大的收獲就是熟能生巧,多做多練才能有速度和質(zhì)量。圖751 28題的查詢結(jié)果樣式四. 實(shí)驗(yàn)總結(jié)通過這學(xué)期的上機(jī)實(shí)驗(yàn),其實(shí)是對(duì)上學(xué)期數(shù)據(jù)庫(kù)基礎(chǔ)的一個(gè)復(fù)習(xí)和拓展應(yīng)用,在上學(xué)期對(duì)數(shù)據(jù)庫(kù)理論學(xué)習(xí)的基礎(chǔ)上,在這次上機(jī)實(shí)踐中學(xué)習(xí)了SQL語言基礎(chǔ)、架構(gòu)與基本表的修改,還有高級(jí)查詢,涉及到相關(guān)子查詢、其他形式子查詢、查詢結(jié)果的并,交,差運(yùn)算等,其中還涉及到一些查詢功能,例如:開窗函數(shù),公式表達(dá)等。如果該課程沒有先修課,則層次為1,如果有1層先修課,則層次為2,依次類推。表76 NewCourse表數(shù)據(jù)CnoCnameCreditSemesterPriorCnoC001 高等數(shù)學(xué)41NULLC002 大學(xué)英語31NULLC003 大學(xué)英語32C002C004 計(jì)算機(jī)文化學(xué)22NULLC005 JAVA23C004C006 數(shù)據(jù)庫(kù)基礎(chǔ)45C007C007 數(shù)據(jù)結(jié)構(gòu)44C009C008 計(jì)算機(jī)網(wǎng)絡(luò)44C004C009Java語言43C004 用NewCourse表查詢每門課程的信息及其先修課程信息,查詢結(jié)果樣式如圖750所示。with avg_count(avgs,counts) as(select AVG(grade)over(partition by o) as avgs,COUNT(Sno)over(partition by o) as countsfrom SC)select DISTINCT avgs,counts from avg_countwhere counts227. (選做)查詢Course表中的全部數(shù)據(jù)并將其保存到一個(gè)新表NewCourse中,然后為NewCourse表增加一個(gè)先修課程列PriorCno,該列表明了當(dāng)前課程的先修課程編號(hào),NULL表示該門課程沒有先修課程。該查詢的部分結(jié)果形式如圖749所示。該查詢的部分結(jié)果形式如圖748所示。該查詢的部分結(jié)果形式如圖747所示。查詢結(jié)果樣式如圖746所示。select sno,sname,dept,COUNT(*) over(partition by dept) 該系的學(xué)生 人數(shù) from Student21.查詢學(xué)生姓名、年齡、所在系及該系的平均年齡、最大年齡和最小年齡。C00239。C00139。19.查詢至少同時(shí)選了“C001”和“C002”兩門課程的學(xué)生的學(xué)號(hào)和所選的課程號(hào)。exceptselect Cname,semester,credit from Course join SC on = join Student on =where sname=39。select Cname,semester,credit from Course join SC on = join Student on =where sname=39。王大力39。李勇39。select ame,credit from Coursewhere Semester=4 and Credit in(select credit from Course where Semester=1)17.查詢“李勇”和“王大力”所選的相同課程,列出課程名、開課學(xué)期和學(xué)分。and not exists ( select * from SC join Student s on = ))15.查詢至少選了全部學(xué)分大于3分的課程的學(xué)生的學(xué)號(hào)、所在系和所選的課程號(hào)、課程名以及學(xué)分。select ,dept,o from Student s join SC on=where not exists (select * from SC join Student son =where Sname=39。083110239。select sno,dept from student s where not exists (select * from Course c where semester =4 and not exists(select * from SC where = and =))13.查詢至少選了“0831102”號(hào)學(xué)生所選的全部課程的學(xué)生的學(xué)號(hào)。11. 查詢沒有選修第2學(xué)期開設(shè)的全部課程的學(xué)生的學(xué)號(hào)、其所選的課程號(hào)和該課程的開課學(xué)期。(用EXISTS子查詢實(shí)現(xiàn))selectfrom wherenot exists( select * from where =)and=39。9. 查詢哪些課程沒有學(xué)生選,列出課程號(hào)和課程名。)and=39。select as 姓名,DATEPART(yy,getdate())1900 as 年齡from as t1wher