




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗二 數(shù)據(jù)庫的查詢實驗一、 實驗?zāi)康暮鸵螅?)掌握SQL Server查詢分析器的使用方法,加深對SQL和Transact-SQL語言的查詢語句的理解。(2)熟練掌握簡單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。(3)熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計、計算和組合的操作方法。二、 實驗內(nèi)容和原理在實驗一定義的“學(xué)生成績數(shù)據(jù)庫”中,使用T-SQL語句完成以下查詢:(1)求計算機系學(xué)生的學(xué)號和姓名。(2)求選修了數(shù)學(xué)的學(xué)生學(xué)號、姓名和成績。(3)求選修01課程的學(xué)生學(xué)號和成績,并要求對查詢結(jié)果按成績降序排列,如果成績相同則按學(xué)號升序排列。(4)查找選修課程的平均成績位于前三名的學(xué)生的學(xué)號。(
2、5)查詢計算機系的姓劉且單名的學(xué)生的信息。(6)查詢至少選修兩門課程的學(xué)生學(xué)號。(7)查詢學(xué)生的學(xué)號、課程號以及對應(yīng)成績與所有學(xué)生所有課程的最高成績的百分比。(8)查詢選修“數(shù)據(jù)庫”課程,且成績在80分以上的學(xué)生的學(xué)號和成績。(9)查詢所有姓“王”的同學(xué)沒有選修的課程名。(請分別用exists和in完成該查詢)(10)查詢選修了全部課程的學(xué)生的姓名。(請至少寫出兩種查詢語句)(11)求選修了學(xué)生“95001”所選修的全部課程的學(xué)生學(xué)號和姓名。(12)查詢每一門課的間接先修課。(13)列出所有學(xué)生所有可能的選課情況。(14)列出每個學(xué)生的學(xué)號及選修課程號,沒有選修的學(xué)生的學(xué)號也一并列出。(15)
3、輸出與“張三”同性別并位于同一個系的所有同學(xué)的姓名。(請至少寫出兩種查詢語句)(16)查詢至少被兩名男生選修的課程名。(17)對被兩名以上學(xué)生所選修的課程統(tǒng)計每門課的選課人數(shù)。要求輸出課程號和選修人數(shù),查詢結(jié)果按人數(shù)降序排列;若人數(shù)相同,按課程號升序排列。(18)列出選修課程超過3門的學(xué)生姓名及選修門數(shù)。(19)檢索至少選修課程號為01和03的學(xué)生姓名。(20)檢索至少選修課程“數(shù)學(xué)”和“操作系統(tǒng)”的學(xué)生學(xué)號。(21)查詢操作系統(tǒng)課程的最高分的學(xué)生的姓名、性別、所在系(22)查詢數(shù)據(jù)結(jié)構(gòu)的成績低于操作系統(tǒng)的成績的學(xué)生姓名及該生的這兩門課的成績(23)所有成績都在70分以上的學(xué)生姓名及所在系。三
4、、實驗環(huán)境四、實驗方法 1. 將查詢需求用Transact-SQL語言表示。 2. 在 SQL Server查詢分析器的輸入?yún)^(qū)中輸入 Transact-SQL查詢語句。 3. 發(fā)布執(zhí)行命令,查看查詢結(jié)果;如果結(jié)果不正確,進行修改,直到正確為止。 4. 查詢分析器及使用方法。圖1 SQL Server 2000查詢分析器 查詢分析器是在開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)時使用最多的工具。查詢分析器的主要作用是編輯Transact-SQL,將其發(fā)送到服務(wù)器,并將執(zhí)行結(jié)果及分析顯示出來(或進行存儲)。查詢分析功能主要通過測試查詢成本,判斷該查詢是否需要增加索引以提高查詢速度,并可以實現(xiàn)自動建立索引的功能、查詢分析器
5、的界面如圖1所示。 在查詢分析器中的左邊窗口是對象瀏覽器,其中按樹結(jié)構(gòu)列出了數(shù)據(jù)庫對象;右上方是SQL代碼區(qū)域用于輸入 SQL的查詢語句;右下方為結(jié)果區(qū),用于顯示查詢結(jié)果和分析結(jié)果、對于TSQL語句的執(zhí)行結(jié)果,在結(jié)果區(qū)中可以有4種不同的輸出形式:標(biāo)準(zhǔn)執(zhí)行將結(jié)果直接顯示在結(jié)果區(qū):網(wǎng)格執(zhí)行將結(jié)果以表格形式顯示在結(jié)果區(qū);計劃執(zhí)行顯示執(zhí)行計劃;索引分析為在結(jié)果區(qū)中顯示查詢的索引情況。上述輸出形式,可以通過菜單或按鈕選擇。五、調(diào)試過程五、實驗結(jié)果六、總結(jié)附錄: -(1)求計算機系學(xué)生的學(xué)號和姓名。select sno,sname from student where sdept='計算機'
6、;-(2)求選修了數(shù)學(xué)的學(xué)生學(xué)號、姓名和成績。select s.sno,sname,grade from student s,sc,course c where s.sno=sc.sno and o=o and cname='數(shù)學(xué)'-(3)求選修課程的學(xué)生學(xué)號和成績,并要求對查詢結(jié)果按成績降序排列,如果成績相同則按學(xué)號升序排列。select sno,grade from sc where cno='1' order by grade desc,sno asc-(4)查找選修課程的平均成績位于前三名的學(xué)生的學(xué)號。select top 3 sno from sc g
7、roup by sno order by avg(grade) desc-(5)查詢計算機系的姓劉且單名的學(xué)生的信息。select * from student where sdept='計算機' and sname like '劉_'-(6)查詢至少選修兩門課程的學(xué)生學(xué)號。select sno from sc group by sno having count(*)>=2-(7)查詢學(xué)生的學(xué)號、課程號以及對應(yīng)成績與所有學(xué)生所有課程的最高成績的百分比。select sno,cno,grade,最高成績百分比=grade*100/(select max(gr
8、ade)from sc)from sc -(8)查詢選修“數(shù)據(jù)庫”課程,且成績在分以上的學(xué)生的學(xué)號和成績。select sno,gradefrom course c,scwhere cname='數(shù)據(jù)庫' and grade>80 and o=o-(9)查詢所有姓“王”的同學(xué)沒有選修的課程名。(請分別用exists和in完成該查詢)-exists方法select cnamefrom course cwhere not exists(select s.snofrom student s,scwhere s.sno=sc.sno and sname like '王%&
9、#39; and o=o )-in方法select cnamefrom course cwhere cno not in(select cnofrom student s,scwhere s.sno=sc.sno and sname like '王%' and o=o )-(10)查詢選修了全部課程的學(xué)生的姓名。(請至少寫出兩種查詢語句)-法一select Snamefrom student swhere not exists(select *from course cwhere not exists(select *from scwhere sno = s.sno and c
10、no = o)-法二select Snamefrom student swhere (select count(*)from sc where sno = s.sno)=(select count(*) from course)-法三select Snamefrom studentwhere Sno in(select Sno from sc group by sno having count(*) = (select count(*) from course)-(11)求選修了學(xué)生“”所選修的全部課程的學(xué)生學(xué)號和姓名。select s.sno,sname from student s,scw
11、here o in( select cno from sc where sno='95001')and s.sno=sc.snogroup by s.sno,snamehaving count(cno)=(select count(cno) from sc where sno='95001') and s.sno!='95001'-(12)查詢每一門課的間接先修課。select o,c2.cpnofrom course c1,course c2where c1.cpno = o-(13)列出所有學(xué)生所有可能的選課情況。select s.sno,s
12、.sname,o,amefrom student s cross join course c-(14)列出每個學(xué)生的學(xué)號及選修課程號,沒有選修的學(xué)生的學(xué)號也一并列出。select s.sno,ofrom student s left outer join scon s.sno = sc.sno-(15)輸出與“張三”同性別并位于同一個系的所有同學(xué)的姓名。(請至少寫出兩種查詢語句)-法一select snamefrom studentwhere sdept in(select sdept from studentwhere sname = '張三' and ssex =(sele
13、ct ssex from student where sname='張三') group by snamehaving sname!='張三'-法二select snamefrom student where sdept =(select sdept from studentwhere sname = '張三' and ssex =(select ssex from student where sname='張三')group by snamehaving sname!='張三'-(16)查詢至少被兩名男生選修的課
14、程名。select cnamefrom course c,student s,scwhere ssex='男' and o=o and s.sno=sc.snogroup by cnamehaving count(*)>=2-(17)對被兩名以上學(xué)生所選修的課程統(tǒng)計每門課的選課人數(shù)。- 要求輸出課程號和選修人數(shù),查詢結(jié)果按人數(shù)降序排列;若人數(shù)相同,按課程號升序排列。select cno,count(*) as '選修人數(shù)'from scgroup by cnohaving count(*)>2order by '選修人數(shù)'desc,c
15、no asc-(18)列出選修課程超過門的學(xué)生姓名及選修門數(shù)。select sname,count(*) as '選修門數(shù)'from student s,scwhere s.sno=sc.snogroup by s.sno,snamehaving count(*)>3-(19)檢索至少選修課程號為和的學(xué)生姓名。select snamefrom studentwhere sno in(select s1.snofrom sc s1,sc s2where o='1' and o='3' and s1.sno=s2.sno)-(20)檢索至少選修
16、課程“數(shù)學(xué)”和“操作系統(tǒng)”的學(xué)生學(xué)號。select sc.snofrom course c,sc where ame = '數(shù)學(xué)' and o = o and sno in ( select sc.snofrom sc ,course c where ame = '操作系統(tǒng)' and o = o)-(21)查詢操作系統(tǒng)課程的最高分的學(xué)生的姓名、性別、所在系select sname,ssex,sdeptfrom student s,scwhere s.sno=sc.sno and grade= (select max(grade) from course c,sc where o=o and cname='操作系統(tǒng)')-(22)查詢數(shù)據(jù)結(jié)構(gòu)的成績低于操作系統(tǒng)的成績的學(xué)生姓名及該生的這兩門課的成績select s1.sname,sc1.grade as '操作系統(tǒng)成績',sc2.grade as '數(shù)據(jù)結(jié)構(gòu)成績'from course c1,course c2,sc sc1,sc sc2,student s1,student s2where
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州城市職業(yè)學(xué)院《影視攝像基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 漯河食品職業(yè)學(xué)院《會展項目綜合運營二》2023-2024學(xué)年第二學(xué)期期末試卷
- 武昌工學(xué)院《測試自動化》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽理工大學(xué)《酒店財務(wù)管理實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國地質(zhì)大學(xué)(北京)《電力電子變流技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年氣體檢測監(jiān)控系統(tǒng)合作協(xié)議書
- 浙江建設(shè)職業(yè)技術(shù)學(xué)院《畫法幾何及陰影透視》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧泌泰膠囊項目效益評估報告
- 河南2025年河南鄭州大學(xué)第一附屬醫(yī)院招聘819人筆試歷年參考題庫附帶答案詳解
- 大連軟件職業(yè)學(xué)院《食品營養(yǎng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 高危妊娠及五色管理課件
- 《 大學(xué)生軍事理論教程》全套教學(xué)課件
- 品質(zhì)提升計劃改善報告課件
- 景區(qū)明年營銷工作計劃
- 中藥材倉儲標(biāo)準(zhǔn)化與信息化建設(shè)
- 2型糖尿病性增殖性出血性視網(wǎng)膜病的護理查房
- 人工智能基礎(chǔ)與應(yīng)用-課程標(biāo)準(zhǔn)
- 業(yè)主授權(quán)租戶安裝充電樁委托書
- 排水管道施工組織設(shè)計排水管道施工組織設(shè)計排水施工排水管道施工施工設(shè)計
- 倉庫管理人員安全培訓(xùn)考試題含答案
- 2024年度核醫(yī)學(xué)科危重癥患者應(yīng)急預(yù)案流程圖
評論
0/150
提交評論