


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1、了解SQL語言的特點(diǎn)和基本概念。2、 能夠針對某種具體的DBMS(本實(shí)驗(yàn)采用Access2003),熟練地運(yùn)用單表查詢、連接查詢、嵌套查詢、集合查詢等各 種SQL查詢語句對數(shù)據(jù)庫中的表進(jìn)行操作。3、 對相同的查詢要求,能夠采用多種查詢方法實(shí)現(xiàn),并能分析各種方法的優(yōu)劣,從中選擇合適的方法。、實(shí)驗(yàn)過程:1、Print the names of professors who work in departments that have fewer than 50 PhD students.解:(1)分析:本題是查詢在博士生人數(shù)少于50個(gè)人的系工作的教師名字。查詢教授名字可以通過prof表,而所查
2、詢的教授名字是有限制條件的,他所工作的系名要屬于特定的集合(所有系名的一個(gè)子集),顯然這 個(gè)子集可以通過查詢dept表獲得,所以帶有謂詞in的嵌套子查詢可以實(shí)現(xiàn)題目要求。(2) 語句實(shí)現(xiàn):SELECT Prof.字段 1FROM ProfWHERE Prof.字段 2 IN (SELECT Dept.字段 1 FROM Dept WHERE Dept.字段 2 < 50);.J(3) 查詢結(jié)果:2、Print the name(s) of student(s) with the lowest gpa解:(1)分析:本題是查詢成績點(diǎn)最低的學(xué)生的名字。最低的成績點(diǎn)可以在student表中通過
3、函數(shù)min(gpa)獲得, 而所查詢學(xué)生的名字的限制為成績點(diǎn)等于min(gpa),因此可用如下嵌套子查詢實(shí)現(xiàn)。(2) 語句實(shí)現(xiàn):SELECT Student.字段 2FROM StudentWHERE Student.字段 6 IN(SELECT min(Student.字段 6)FROM Student);/jS/jS.(3) 查詢結(jié)果:3、For each Computer Sciences class, print the eno, sect no, and the average gpa of the stude nt en rolled in the class. 解:(1)分析:本
4、題是查詢計(jì)算機(jī)科學(xué)系的所有班的課程號(hào)、分班號(hào)、班上學(xué)生的平均績點(diǎn)。計(jì)算機(jī)科學(xué)系的所有班可以通過section表獲得,而通過enroll表可以由section表中的dname, eno, sectno獲得班上所 有學(xué)生的sid,而通過sid可以在student表中查得學(xué)生成績點(diǎn),最后由eno, sectno進(jìn)行分組, 并用函數(shù)avg(gpa),獲得每組的平均成績。所以可用三個(gè)表的連接查詢,并適當(dāng)分組實(shí)現(xiàn)查詢要 求。(2)語句實(shí)現(xiàn):SELECT Section.字段 2,Section.字段 3,avg(Student.字段 6) AS avStudent 字段 6FROM Section,Enr
5、oll.StudentWHERE (Section.字段 1 ='Computer Sciences,)and(Section.字段 2=Enroll.字段 4)and=)GROUP BY Section.字段 2,Section.字段 3;%?>.J(3)查詢結(jié)果:4、Print the course names, course numbers and section numbers of all classes with less than six students enrolled in them.解:(1)分析:本題是查詢所有班級人數(shù)少于6的課程名,課程號(hào),分班號(hào)。通過s
6、ection表可以查詢出所有的班,其中的課程名可由查詢所得的dname, eno在course表中確定,因?yàn)榕c班級人數(shù)有 矢,還需將section表和enroll表做連接,并按,分組以獲取所有班的人數(shù)。所以可用連接查 詢、嵌套查詢,并適當(dāng)分組來實(shí)現(xiàn)查詢要求。(2) 語句實(shí)現(xiàn):SELECT (SELECT Course.字段 2 from Coursewhere Course.字段 1=Section.字段 2 and Course.字段 3=Section.字段 1)AS Course 字段 2,Section.字段 2,Section.字段 3FROM Section,EnrollWHERE
7、 (Section.字段 2=Enroll.字段 4AND section.字段 1=enroll.字段 3 AND section.字段 3=enroll.字段 5)GROUP BY Section.字段 2,Section.字段 3,Section.字段 1 HAVING count(*)<6;%!*.J(3) 查詢結(jié)果:5、Print the name(s) and sid(s) of student(s) enrolled in the most classes.解:(1)分析:本題是查詢加入班級數(shù)最多的學(xué) 生名字、學(xué)號(hào)??刹捎门R時(shí)表的方法解決。建立一個(gè)臨時(shí)表包括字段學(xué)生名字、學(xué)
8、號(hào)和所選課程的數(shù)目(num)。再對這個(gè)臨時(shí)表進(jìn)行查詢(名字、學(xué)號(hào)),限制條件是所選課程數(shù)目等于max(num)。(2)語句實(shí)現(xiàn):SELECT ,FROM (SELECT ,count AS numFROM enroll,studentWHERE=GROUP BY , AS TempWHERE = (SELECT max(num) From (SELECT sid,(SELECT sname FROM Student where sid= AS sname,count(*)As num FROM Enroll group by );(3)查詢結(jié)果:6 、Print the names of de
9、partments that have one or more majors who are under 18 years old.解:(1)分析:本題是查詢所含學(xué)生至少有一個(gè)年齡小于18歲的系的名稱。在major表中可以得 到每個(gè)學(xué)生所屬專業(yè)情況,該系存在學(xué)生年齡小于18歲的學(xué)生(通過 student表)則該系滿足要求。因此可用帶有exists的嵌套子查詢實(shí)現(xiàn)要求。(2)語句實(shí)現(xiàn):SELECT dnameFROM majorWHERE exists (SELECT*FROM Student where <18 and =;*拳*拳*寧* 3)查詢結(jié)果:7 、 Print the nam
10、es and majors of students who are taking one of the College Geometry courses.解:(1)分析:本題查詢所有選了 College Geometry courses的學(xué)生的姓名和所在系名。此題對課程名需要用通配 符進(jìn)行模糊查詢。學(xué)生的限制條件是存在一門College Geometry course為他所 選。因此還需用到 帶有exists的嵌套子查詢。(2)語句實(shí)現(xiàn):SELECT (SELECT sname FROM Student where sid= AS sname, dname FROM majorWHERE ex
11、ists (SELECT*from Course,Enroll where Mathematics' and in (461,462) and =;/jS.J(3 )查詢結(jié)果:8 、For those departments that have no majors taking a College Geometry course, print the department name and thenumber of PhD students in the department.解:(1 )分析:本題是查詢所含學(xué)生都沒有選College Geometry course的系的名稱和該系的博
12、士生人數(shù)。本題思路和方法與上題基本一致。(2) 語句實(shí)現(xiàn):SELECTdname, numphdsFROM DeptWHERE not exists (SELECT*from Course,Enroll where Mathematics' and in (461,462) and =;/jS.J(3) 查詢結(jié)果:9、Print the names of students who are taking both a Computer Sciences course and a Mathematics course.解:(1)分析:本題是查詢既選了計(jì)算機(jī)科學(xué)系課程又選了數(shù)學(xué)系課程的學(xué)生姓
13、名是求兩個(gè)集合交的問題。因?yàn)橐话愕腄BMS沒有實(shí)現(xiàn)交操作,可以先根據(jù)一個(gè)條件獲取一個(gè)集合然后根據(jù)第二個(gè)條件篩選,即第一個(gè)集合要選取也在第二個(gè)條件產(chǎn)生的集合元素中。因此可以用帶有in的嵌套子查詢完成要求。(2) 語句實(shí)現(xiàn):SELECTFROM Student,EnrollWHERE = andMathematics' and in (SELECT FROM Student.Enroll WHERE = and ='Computer Sciences');.J(3) 查詢結(jié)果:10、Print the age d iff ere nee betwee n the oldes
14、t and youn gest Computer Scie nces major(s).解:(1)分析:本題是查詢計(jì) 算機(jī)科學(xué)性年齡最大的學(xué)生和年齡最小的學(xué)生之間的年齡差。思想還是通過先建立一張臨時(shí)表,包括字段系名、學(xué)號(hào)、 年齡。再在這張臨時(shí)表里利用max(age),min(age)獲取最大年齡和最小年齡,進(jìn)行相減運(yùn)算。(2)語句實(shí)現(xiàn):SELECT max(age)-min(age) AS differenceFROM (SELECT dname, ageFROM Major,StudentWHERE ='Computer Sciences1 and =;*?* *?* %!* %!*
15、 *1 *1 *1jS.(3 )查詢結(jié)果:11、For each department that has one or more majors with a GPAunder, print the nameof the department and the average GPA of its majors.解:(1)分析:本題是查詢系里有學(xué)生績點(diǎn)小于的系的系名和該系學(xué)生的平均績點(diǎn)。本題主要是對major,student兩張表按sid做連接,連接后再按dname分組,但要注意將min (gpa) <1的分組剔除。(2) 語句實(shí)現(xiàn):SELECT dname,avg (gpa) AS avg
16、paFROM Major,StudentWHERE dname in (SELECT dname from Major,Student WHERE = and < GROUP BYdname) and = GROUP BY dname;.J(3) 查詢結(jié)果:12、Print the ids, names, and GPAsof the students who are currently taking all of the Civil Engineering courses.解:(1 )分析:本題查詢選修了所有Civil Engineering系課程的學(xué)生的學(xué)號(hào)、姓名、成績點(diǎn)。即所查詢學(xué)生的限制條件為沒有一門Civil Engineering系的課程該學(xué)生是沒有選的。將肯定形式的查詢要求轉(zhuǎn) 化為等價(jià)的雙重否定形式,便于SQL語言求解。(2)語句實(shí)現(xiàn):SELECT sid,sname,gpaFROM Stud
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)備工作計(jì)劃13篇
- 幼兒園 中班科學(xué)奇妙的樹葉課件
- Unit 10 Lesson 3 Thinkign Skills and Reading Strategies 課件 2024-2025學(xué)年仁愛科普版英語七年級下冊
- 2025年Android性能優(yōu)化總結(jié)BAT大廠面試總結(jié)
- 部編版五年級上冊第二單元《搭石》教案
- 建筑施工特種作業(yè)-建筑架子工附著式腳手架真題庫-6
- 色彩文案題目大全及答案
- 色彩能力常識(shí)題目及答案
- 2022年1月廣東省普通高中學(xué)業(yè)水平合格性考試物理仿真模擬試卷A(新課程)(參考答案)
- 02《勻變速直線運(yùn)動(dòng)的研究》-2025高中物理水平合格考備考知識(shí)清單+習(xí)題鞏固
- 河南省天一大聯(lián)考2024屆高一物理第二學(xué)期期末綜合測試模擬試題含解析
- 血液灌流患者護(hù)理查房
- 《工程材料》課程教案
- 常用護(hù)理評估工具-產(chǎn)科VTE風(fēng)險(xiǎn)評估
- 石家莊市市屬國有企業(yè)招聘管理人員及專業(yè)技術(shù)人員筆試試卷2021
- 中聯(lián)TC7530-16H 塔吊使用說明書
- 用eviews進(jìn)行一元線性回歸分析報(bào)告
- 遼寧省大連市甘井子區(qū)2021-2022學(xué)年五年級下學(xué)期期末科學(xué)試卷
- 鍛造工藝設(shè)計(jì)課件
- 垂直剖分式壓縮機(jī)檢修
- 醫(yī)療保險(xiǎn)基本政策培訓(xùn)PPT
評論
0/150
提交評論