版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)二 數(shù)據(jù)庫(kù)的查詢實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康暮鸵螅?)掌握SQL Server查詢分析器的使用方法,加深對(duì)SQL和Transact-SQL語(yǔ)言的查詢語(yǔ)句的理解。(2)熟練掌握簡(jiǎn)單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。(3)熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計(jì)、計(jì)算和組合的操作方法。二、 實(shí)驗(yàn)內(nèi)容和原理在實(shí)驗(yàn)一定義的“學(xué)生成績(jī)數(shù)據(jù)庫(kù)”中,使用T-SQL語(yǔ)句完成以下查詢:(1)求計(jì)算機(jī)系學(xué)生的學(xué)號(hào)和姓名。(2)求選修了數(shù)學(xué)的學(xué)生學(xué)號(hào)、姓名和成績(jī)。(3)求選修01課程的學(xué)生學(xué)號(hào)和成績(jī),并要求對(duì)查詢結(jié)果按成績(jī)降序排列,如果成績(jī)相同則按學(xué)號(hào)升序排列。(4)查找選修課程的平均成績(jī)位于前三名的學(xué)生的學(xué)號(hào)。(
2、5)查詢計(jì)算機(jī)系的姓劉且單名的學(xué)生的信息。(6)查詢至少選修兩門課程的學(xué)生學(xué)號(hào)。(7)查詢學(xué)生的學(xué)號(hào)、課程號(hào)以及對(duì)應(yīng)成績(jī)與所有學(xué)生所有課程的最高成績(jī)的百分比。(8)查詢選修“數(shù)據(jù)庫(kù)”課程,且成績(jī)?cè)?0分以上的學(xué)生的學(xué)號(hào)和成績(jī)。(9)查詢所有姓“王”的同學(xué)沒有選修的課程名。(請(qǐng)分別用exists和in完成該查詢)(10)查詢選修了全部課程的學(xué)生的姓名。(請(qǐng)至少寫出兩種查詢語(yǔ)句)(11)求選修了學(xué)生“95001”所選修的全部課程的學(xué)生學(xué)號(hào)和姓名。(12)查詢每一門課的間接先修課。(13)列出所有學(xué)生所有可能的選課情況。(14)列出每個(gè)學(xué)生的學(xué)號(hào)及選修課程號(hào),沒有選修的學(xué)生的學(xué)號(hào)也一并列出。(15)
3、輸出與“張三”同性別并位于同一個(gè)系的所有同學(xué)的姓名。(請(qǐng)至少寫出兩種查詢語(yǔ)句)(16)查詢至少被兩名男生選修的課程名。(17)對(duì)被兩名以上學(xué)生所選修的課程統(tǒng)計(jì)每門課的選課人數(shù)。要求輸出課程號(hào)和選修人數(shù),查詢結(jié)果按人數(shù)降序排列;若人數(shù)相同,按課程號(hào)升序排列。(18)列出選修課程超過3門的學(xué)生姓名及選修門數(shù)。(19)檢索至少選修課程號(hào)為01和03的學(xué)生姓名。(20)檢索至少選修課程“數(shù)學(xué)”和“操作系統(tǒng)”的學(xué)生學(xué)號(hào)。(21)查詢操作系統(tǒng)課程的最高分的學(xué)生的姓名、性別、所在系(22)查詢數(shù)據(jù)結(jié)構(gòu)的成績(jī)低于操作系統(tǒng)的成績(jī)的學(xué)生姓名及該生的這兩門課的成績(jī)(23)所有成績(jī)都在70分以上的學(xué)生姓名及所在系。三
4、、實(shí)驗(yàn)環(huán)境四、實(shí)驗(yàn)方法 1. 將查詢需求用Transact-SQL語(yǔ)言表示。 2. 在 SQL Server查詢分析器的輸入?yún)^(qū)中輸入 Transact-SQL查詢語(yǔ)句。 3. 發(fā)布執(zhí)行命令,查看查詢結(jié)果;如果結(jié)果不正確,進(jìn)行修改,直到正確為止。 4. 查詢分析器及使用方法。圖1 SQL Server 2000查詢分析器 查詢分析器是在開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí)使用最多的工具。查詢分析器的主要作用是編輯Transact-SQL,將其發(fā)送到服務(wù)器,并將執(zhí)行結(jié)果及分析顯示出來(lái)(或進(jìn)行存儲(chǔ))。查詢分析功能主要通過測(cè)試查詢成本,判斷該查詢是否需要增加索引以提高查詢速度,并可以實(shí)現(xiàn)自動(dòng)建立索引的功能、查詢分析器
5、的界面如圖1所示。 在查詢分析器中的左邊窗口是對(duì)象瀏覽器,其中按樹結(jié)構(gòu)列出了數(shù)據(jù)庫(kù)對(duì)象;右上方是SQL代碼區(qū)域用于輸入 SQL的查詢語(yǔ)句;右下方為結(jié)果區(qū),用于顯示查詢結(jié)果和分析結(jié)果、對(duì)于TSQL語(yǔ)句的執(zhí)行結(jié)果,在結(jié)果區(qū)中可以有4種不同的輸出形式:標(biāo)準(zhǔn)執(zhí)行將結(jié)果直接顯示在結(jié)果區(qū):網(wǎng)格執(zhí)行將結(jié)果以表格形式顯示在結(jié)果區(qū);計(jì)劃執(zhí)行顯示執(zhí)行計(jì)劃;索引分析為在結(jié)果區(qū)中顯示查詢的索引情況。上述輸出形式,可以通過菜單或按鈕選擇。五、調(diào)試過程五、實(shí)驗(yàn)結(jié)果六、總結(jié)附錄: -(1)求計(jì)算機(jī)系學(xué)生的學(xué)號(hào)和姓名。select sno,sname from student where sdept='計(jì)算機(jī)'
6、;-(2)求選修了數(shù)學(xué)的學(xué)生學(xué)號(hào)、姓名和成績(jī)。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é)號(hào)和成績(jī),并要求對(duì)查詢結(jié)果按成績(jī)降序排列,如果成績(jī)相同則按學(xué)號(hào)升序排列。select sno,grade from sc where cno='1' order by grade desc,sno asc-(4)查找選修課程的平均成績(jī)位于前三名的學(xué)生的學(xué)號(hào)。select top 3 sno from sc g
7、roup by sno order by avg(grade) desc-(5)查詢計(jì)算機(jī)系的姓劉且單名的學(xué)生的信息。select * from student where sdept='計(jì)算機(jī)' and sname like '劉_'-(6)查詢至少選修兩門課程的學(xué)生學(xué)號(hào)。select sno from sc group by sno having count(*)>=2-(7)查詢學(xué)生的學(xué)號(hào)、課程號(hào)以及對(duì)應(yīng)成績(jī)與所有學(xué)生所有課程的最高成績(jī)的百分比。select sno,cno,grade,最高成績(jī)百分比=grade*100/(select max(gr
8、ade)from sc)from sc -(8)查詢選修“數(shù)據(jù)庫(kù)”課程,且成績(jī)?cè)诜忠陨系膶W(xué)生的學(xué)號(hào)和成績(jī)。select sno,gradefrom course c,scwhere cname='數(shù)據(jù)庫(kù)' and grade>80 and o=o-(9)查詢所有姓“王”的同學(xué)沒有選修的課程名。(請(qǐng)分別用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é)生的姓名。(請(qǐng)至少寫出兩種查詢語(yǔ)句)-法一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é)號(hào)和姓名。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)列出每個(gè)學(xué)生的學(xué)號(hào)及選修課程號(hào),沒有選修的學(xué)生的學(xué)號(hào)也一并列出。select s.sno,ofrom student s left outer join scon s.sno = sc.sno-(15)輸出與“張三”同性別并位于同一個(gè)系的所有同學(xué)的姓名。(請(qǐng)至少寫出兩種查詢語(yǔ)句)-法一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)對(duì)被兩名以上學(xué)生所選修的課程統(tǒng)計(jì)每門課的選課人數(shù)。- 要求輸出課程號(hào)和選修人數(shù),查詢結(jié)果按人數(shù)降序排列;若人數(shù)相同,按課程號(hào)升序排列。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)檢索至少選修課程號(hào)為和的學(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é)號(hào)。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)的成績(jī)低于操作系統(tǒng)的成績(jī)的學(xué)生姓名及該生的這兩門課的成績(jī)select s1.sname,sc1.grade as '操作系統(tǒng)成績(jī)',sc2.grade as '數(shù)據(jù)結(jié)構(gòu)成績(jī)'from course c1,course c2,sc sc1,sc sc2,student s1,student s2where
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國(guó)退耦分壓器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 私人派對(duì)發(fā)電機(jī)組租賃合同
- 彩鋼裝修工程合同模板
- 離婚協(xié)議書與家庭財(cái)產(chǎn)公證的關(guān)系
- 電動(dòng)自行車環(huán)保使用協(xié)議書
- 境外投資股權(quán)轉(zhuǎn)讓合同范本
- 建筑設(shè)計(jì)咨詢服務(wù)協(xié)議書
- 托兒所衛(wèi)生保健資料收集與上報(bào)制度
- 零售行業(yè)顧客反饋與服務(wù)質(zhì)量制度
- 康復(fù)醫(yī)院護(hù)理質(zhì)控小組制度與標(biāo)準(zhǔn)
- 醫(yī)美加盟模板課件
- 部編三年級(jí)上語(yǔ)文《17 古詩(shī)三首》優(yōu)質(zhì)教學(xué)設(shè)計(jì)
- 甾體化合物的微生物轉(zhuǎn)化課件
- 乒乓球一級(jí)裁判培訓(xùn)班規(guī)程講座課件
- 公路工程施工現(xiàn)場(chǎng)安全檢查手冊(cè)
- 海水淡化預(yù)處理過程概要課件
- 產(chǎn)品質(zhì)量保障方案
- 李白的性格思想課件
- (完整版)標(biāo)書密封條格式word
- 財(cái)務(wù)會(huì)計(jì)費(fèi)用原始憑證分割單
- 湘教版高中地理必修1自然地理環(huán)境的整體性教案
評(píng)論
0/150
提交評(píng)論