下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SnameFROM SWHERE Sno NOT IN(SELECT SnoFROM SCWHERE Cno=(4)檢索選修課程號(hào)為 C2或C4的學(xué)生學(xué)號(hào);查詢問題:設(shè)教學(xué)數(shù)據(jù)庫(kù) Education有三個(gè)關(guān)系:學(xué)生關(guān)系 S (SNQ SNAME AGE SEX SDEPT ;學(xué) 習(xí)關(guān)系 SC(SNQ CNQ GRADE;課程關(guān)系 C(CNQ CNAMIE CDEPT TNAME(1)檢索計(jì)算機(jī)系的全體學(xué)生的學(xué)號(hào),姓名和性U;(2)檢索學(xué)習(xí)課程號(hào)為 C2的學(xué)生學(xué)號(hào)與姓名;(3)檢索選修課程名為“ DS'的學(xué)生學(xué)號(hào)與姓名;(4)檢索選修課程號(hào)為 C2或C4的學(xué)生學(xué)號(hào);(5)檢索至少選修課程
2、號(hào)為 C2和C4的學(xué)生學(xué)號(hào);(6)檢索不學(xué)C2課的學(xué)生姓名和年齡;(7)檢索學(xué)習(xí)全部課程的學(xué)生姓名;(8)查詢所學(xué)課程包含學(xué)生 S3所學(xué)課程的學(xué)生學(xué)號(hào).(1)檢索計(jì)算機(jī)系的全體學(xué)生的學(xué)號(hào),姓名和性SELECT Sno, Sname Sex FROM SWHERE Sdept = ' CS ;(2)檢索學(xué)習(xí)課程號(hào)為 C2的學(xué)生學(xué)號(hào)與姓名;Sno , Sname FROM S,SnameFROM S , SCWHERE Sno IN(SELECT SnoWHERE =AND = 'C2'FROM SCWHERE Cno='C2 )(3)檢索選修課程名為“ DS
3、9;的學(xué)生學(xué)號(hào)與姓名 本查詢涉及到學(xué)號(hào)、姓名和課程名三個(gè)屬性, 分別存放在S和C表中,但S和C表沒有直接聯(lián)系,必 須通過(guò)SC表建立它們二者的聯(lián)系.C - SC - S根本思路:(1)首先在C表中找出“ D6課程的課程號(hào) Cno;(2)然后在SC表中找出Cno等于第一步給出的 Cno 集合中的某個(gè)元素Cno;(3)最后在S關(guān)系中選出Sno等于第二步中Sno集 合中某個(gè)元素的元組,取出Sno和Sname送入結(jié)果表SELECT Sno, SnameFROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno IN(SELECT CnoFROM CWHERE Cname=
4、' DS );SELECT SnoFROM SCWHERE Cno= ' C2' OR Cno= ' C4'(5)檢索至少選修課程號(hào)為 C2和C4的學(xué)生學(xué)號(hào);SELECT SnoFROM SC X, SC YWHERE = AND = ' C2' AND = ' C4'(6)檢索不學(xué)C2課的學(xué)生姓名和年齡;SnameFROM S WHERENOTEXISTS(SELECT *FROM SCWHERE =ANDCno=-(7)檢索學(xué)習(xí)全部課程的學(xué)生姓名;在表S中找學(xué)生,要求這個(gè)學(xué)生學(xué)了全部課程.換 言之,在S表中找學(xué)生,在
5、C中不存在一門課程,這個(gè) 學(xué)生沒有學(xué).SELECT SnameFROM SWHERE NOT EXISTS(SELECT *FROM CWHERE NOT EXISTS(SELECT *FROM SCWHERE = AND =);(8)查詢所學(xué)課程包含學(xué)生 S3所學(xué)課程的學(xué)生學(xué)分析:不存在這樣的課程 Y,學(xué)生S3選了 Y,而其 他學(xué)生沒有選.SELECT DISTINCT SnoFROM SC AS XWHERE NOT EXISTS(SELECT * FROM SC AS YWHERE = 'S3' AND NOT EXISTS(SELECT *FROM SC AS ZWHE
6、RE = AND =);設(shè)教學(xué)數(shù)據(jù)庫(kù)Education有三個(gè)關(guān)系:學(xué)生關(guān)系 S ( SNQ SNAME AGE SEX, SDEPT ;學(xué)習(xí)關(guān)系 SC (SNQ CNQ GRADE;課程關(guān)系 C (CNQ CNAME CDEPT TNAME查詢問題:1:查所有年齡在 20歲以下的學(xué)生姓名及年齡.2:查測(cè)試成績(jī)有不及格的學(xué)生的學(xué)號(hào)3:查所年齡在 20至23歲之間的學(xué)生姓名、系別 及年齡.4:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性 別.5:查既不是計(jì)算機(jī)系、數(shù)學(xué)系、又不是信息系的 學(xué)生姓名、性別6:查所有姓“劉的學(xué)生的姓名、學(xué)號(hào)和性別.7:查姓“上官且全名為 3個(gè)漢字的學(xué)生姓名.8:查所有不姓“
7、張的學(xué)生的姓名.9:查DB_Design課程的課程號(hào).10:查缺考的學(xué)生的學(xué)號(hào)和課程號(hào).11:查年齡為空值的學(xué)生的學(xué)號(hào)和姓名.12:查計(jì)算機(jī)系20歲以下的學(xué)生的學(xué)號(hào)和姓名.13:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性別.14:查詢選修了 C3課程的學(xué)生的學(xué)號(hào)和成績(jī),其 結(jié)果按分?jǐn)?shù)的降序排列.15:查詢?nèi)w學(xué)生的情況,查詢結(jié)果按所在系升序 排列,對(duì)同一系中的學(xué)生按年齡降序排列.16:查詢學(xué)生總?cè)藬?shù).17:查詢選修了課程的學(xué)生人數(shù).18:計(jì)算選修了 C1課程的學(xué)生平均成績(jī).19:查詢學(xué)習(xí)C3課程的學(xué)生最高分?jǐn)?shù).20:查詢各個(gè)課程號(hào)與相應(yīng)的選課人數(shù).21:查詢計(jì)算機(jī)系選修了 3門以上課程的學(xué)生的學(xué)
8、號(hào).22:求根本表 S中男同學(xué)的每一年齡組(超過(guò) 50 人)有多少人要求查詢結(jié)果按人數(shù)升序排列,人數(shù)相同 按年齡降序排列.23:查詢每個(gè)學(xué)生及其選修課程的情況.24:查詢選修了 C2課程且成績(jī)?cè)?0分以上的所有 學(xué)生.25:查詢每個(gè)學(xué)生選修的課程名及其成績(jī).26:統(tǒng)計(jì)每一年齡選修課程的學(xué)生人數(shù).27:查詢選修了 C2課程的學(xué)生姓名.28:查詢與“張三在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名和系別.29:查詢選修課程名為“數(shù)據(jù)庫(kù)的學(xué)生學(xué)號(hào)和姓名.30:查詢與“張三在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名和系別.31:查詢選修課程名為“數(shù)據(jù)庫(kù)的學(xué)生學(xué)號(hào)和姓名.32:查詢選修了 C2課程的學(xué)生姓名.33:查詢所有未選修
9、 C2課程的學(xué)生姓名.34:查詢與“張三在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、 姓名和系別.35:查詢選修了全部課程的學(xué)生姓名.36:查詢所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào)(1)比擬例1:查所有年齡在20歲以下的學(xué)生姓名及年齡.SELECT Sname , SageFRQM SWHERE Sage<20; (NQT age>=20)例2:查測(cè)試成績(jī)有不及格的學(xué)生的學(xué)號(hào)SELECT DISTINCT SnoFRQM SCWHERE grade<60 ;(2)確定范圍例3:查所年齡在 20至23歲之間的學(xué)生姓名、系 別及年齡.SELECT Sname , Sdept, SageFRQM
10、SWHERE Sage BETWEEN 20 AND 23;(3)確定集合例4:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性別.SELECT Sname , SsexFRQM SWHERE Sdept IN (' CS , ' IS' , 'MATH);例5:查既不是計(jì)算機(jī)系、數(shù)學(xué)系、又不是信息系 的學(xué)生姓名、性別SELECT Sname , SsexFRQM SWHERE Sdept NQT IN (' CS' , IS ','MATH);(4)字符匹配例6:查所有姓“劉的學(xué)生的姓名、學(xué)號(hào)和性別.SELECT Sname , Sno
11、, SsexFROM SWHERE Sname LIKE '劉 ;例7:查姓“上官且全名為 3個(gè)漢字的學(xué)生姓名.SELECT SnameFROM SWHERE Sname LIKE '上官 ;例8:查所有不姓“張的學(xué)生的姓名.SELECT Sname , Sno, Ssex FROM SWHERE Sname NOT LIKE '張 ;例9:查DB_Design課程的課程號(hào).SELECT CnoFROM CWHERE Cname LIKE ' DB_Design ' ESCAPE ';(5)涉及空值的查詢例10:查缺考的學(xué)生的學(xué)號(hào)和課程號(hào).SEL
12、ECT Sno , Cno FROM SCWHERE Grade IS NULL ;(不能用二代替)有成績(jī)的 WHERE Grade IS NOTNULLL 例11:查年齡為空值的學(xué)生的學(xué)號(hào)和姓名.SELECT Sno , Sname FROM SWHERE Sage IS NULL ;(6)多重條件查詢例12:查計(jì)算機(jī)系20歲以下的學(xué)生的學(xué)號(hào)和姓名.SELECT Sno , Sname FROM SWHERE Sdept=' C6 AND Sage<20;例13:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、 性別.SELECT Sname , SsexFROM SWHERE Sdep
13、t ='CS OR Sdept = 'IS ' OR Sdept ='MATH);3、對(duì)查詢結(jié)果排序例14:查詢選修了 C3課程的學(xué)生的學(xué)號(hào)和成績(jī), 其結(jié)果按分?jǐn)?shù)的降序排列.SELECT Sno , GradeFROM SCWHERE Cno= ' C3'ORDER BY Grade DESC;例15:查詢?nèi)w學(xué)生的情況,查詢結(jié)果按所在系升序排列,對(duì)同一系中的學(xué)生按年齡降序排列.SELECT *FROM SORDER BY Sdep , Sage DESC;4.聚合函數(shù)的使用例16:查詢學(xué)生總?cè)藬?shù).SELECT COUNT (*) FROM S例
14、17:查詢選修了課程的學(xué)生人數(shù).SELECT COUNT ( DISTINCT Sno) FROM SC例18:計(jì)算選修了 C1課程的學(xué)生平均成績(jī).SELECT AVG (Grade)FROM SCWHERE Cno= 'C1'例19:查詢學(xué)習(xí)C3課程的學(xué)生最高分?jǐn)?shù).SELECT MAX (Grade)FROM SCWHERE Cno= ' C3'5、對(duì)查詢結(jié)果分組例20:查詢各個(gè)課程號(hào)與相應(yīng)的選課人數(shù).SELECT Cno , COUNT(Sno)FROM SCGROUP BY Cno;該SELEC印句對(duì)SC表按Cno的取值進(jìn)行分組, 所有具有相同 Cno值的
15、元組為一組,然后對(duì)每一組作用 聚合函數(shù)COUNTS求得該組的學(xué)生人數(shù).如果分組后還要求按一定的條件對(duì)這些組進(jìn)行篩 選,最終只輸出滿足指定條件組,那么可以使用 HAVING短語(yǔ)指定篩選條件.例21:查詢計(jì)算機(jī)系選修了 3門以上課程的學(xué)生的 學(xué)號(hào).SELECT SnoFROM SCWHERE Sdept= ' CS'GROUP BY SnoHAVING COUNT (*) >3;WHERE?句與HAVING短語(yǔ)的根本區(qū)別在于作用對(duì) 象不同.WHEREF句作用于根本表或視圖,從中選擇滿 足條件的元組.HAVING短語(yǔ)作用于組,從中選擇滿足條 件的組.例22:求根本表 S中男同學(xué)
16、的每一年齡組(超過(guò) 50人)有多少人要求查詢結(jié)果按人數(shù)升序排列, 人數(shù)相 同按年齡降序排列.SELECT Sage , COUNT( Sno)FROM SWHERE Ssex='M'GROUP BY SageHAVING COUNT(*) > 50ORDER BY 2, Sage DESC;二、多表查詢1、聯(lián)接查詢例23:查詢每個(gè)學(xué)生及其選修課程的情況.SELECT ,Sname,Sage,Ssex,Sdept,Cno,GradeFROM S, SCWHERE =;例24:查詢選修了 C2課程且成績(jī)?cè)?90分以上的所 有學(xué)生.SELECT , SnameFROM S ,
17、SCWHERE =AND ='C2'AND > 90;例25:查詢每個(gè)學(xué)生選修的課程名及其成績(jī).SELECT , Sname CnameFROM S , SC, CWHERE = AND =例26:統(tǒng)計(jì)每一年齡選修課程的學(xué)生人數(shù).SELECT Sage , COUNT( DISTINCT ) FROM S , SC WHERE = GROUP BYS ;由于要統(tǒng)計(jì)每一個(gè)年齡的學(xué)生人數(shù),因此要把 滿足WHER子句中條件的查詢結(jié)果按年齡分組,在每一組中的學(xué)生年齡相同.此時(shí)的SELECT子句應(yīng)對(duì)每一組分開進(jìn)行操作,在每一組中,年齡只有一個(gè)值,統(tǒng)計(jì)的 人數(shù)是這一組中的學(xué)生人數(shù).1
18、、嵌套查詢(1)帶有IN謂詞的子查詢 指父查詢與子查詢之間用IN進(jìn)行聯(lián)接,判斷某個(gè)屬性列值是否在子查詢的結(jié)果中.例27:查詢選修了 C2課程的學(xué)生姓名.SELECT Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno=' C2');例28:查詢與“張三在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、 姓名和系別.分析:(1)確定“張三所在的系;(2)查找所有在 X系學(xué)習(xí)的學(xué)生.SELECT Sdept FROM S WHERE Sname='張三';SELECT Sno , Sname Sdept FROM S WHERE
19、Sdept= 'X'把第一步查詢嵌入到第二步查詢中,用以構(gòu)造第二步查詢的條件.SELECT Sno , Snam FROM S WHERE Sdept INFROM S AS S1, S AS e SdeptWHERE =(SELECT Sdept FROM S WHERE Sname= '張三');例29:查詢選修課程名為“數(shù)據(jù)庫(kù)的學(xué)生學(xué)號(hào)和 姓名.本查詢涉及到學(xué)號(hào)、姓名和課程名三個(gè)屬性, 分別存放在 S和C表中,但S和C表沒有直接聯(lián)系,必 須通過(guò)SC表建立它們二者的聯(lián)系.C - SC一 S根本思路:(1)首先在C表中找出“ DB'課程的課程號(hào) Cno
20、;(2)然后在SC表中找出Cno等于第一步給出的 Cno 集合中的某個(gè)元素 Cno;(3)最后在S關(guān)系中選出Sno等于第二步中Sno集 合中某個(gè)元素的元組,取出 Sno和Sname送入結(jié)果表 列.SELECT Sno , Sname FROM S WHERE Sno IN(SELECT Sno FROM SC WHERE Cno IN(SELECT Cno FROM C WHERECname='DB); 聯(lián)接查詢方式(2)帶有比擬運(yùn)算符的子查詢例30:查詢與“張三在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、 姓名和系別.SELECT Sno , Sname Sdept FROM SWHERE Sdept
21、 =(SELECT Sdept FROM SWHERE Sname='張三');例31:查詢選修課程名為“數(shù)據(jù)庫(kù)的學(xué)生學(xué)號(hào)和 姓名.SELECT Sno , Sname FROM S WHERE Sno IN(SELECT Sno FROM SC WHERE Cno =(SELECT Cno FROM C WHERECname='DB);(3)帶有EXISTS謂詞的子查詢(1)帶有EXISTS謂詞的子查詢不返回任何實(shí)際數(shù) 據(jù),它只產(chǎn)生邏輯值.例32:查詢選修了 C2課程的學(xué)生姓名.Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno=' C2');Sname FROM S WHERE EXISTS (SELECT * FROM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LED照明技術(shù)突破-深度研究
- 匯率制度與金融市場(chǎng)穩(wěn)定-深度研究
- 2025至2030年中國(guó)震動(dòng)盤數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)輕型紙(蒙肯紙)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 人工智能在招聘廣告中的應(yīng)用-深度研究
- 2025至2030年中國(guó)支原體運(yùn)送液培養(yǎng)管數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 大數(shù)據(jù)分頁(yè)技術(shù)-深度研究
- 2025至2030年中國(guó)大功率凈化穩(wěn)壓電源數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)兒童滋潤(rùn)護(hù)膚香皂數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)PVC人字拖鞋帶數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年安全教育培訓(xùn)試題附完整答案(奪冠系列)
- 神農(nóng)架研學(xué)課程設(shè)計(jì)
- 文化資本與民族認(rèn)同建構(gòu)-洞察分析
- 2025新譯林版英語(yǔ)七年級(jí)下單詞默寫表
- 【超星學(xué)習(xí)通】馬克思主義基本原理(南開大學(xué))爾雅章節(jié)測(cè)試網(wǎng)課答案
- 《錫膏培訓(xùn)教材》課件
- 斷絕父子關(guān)系協(xié)議書
- 福建省公路水運(yùn)工程試驗(yàn)檢測(cè)費(fèi)用參考指標(biāo)
- 2024年中國(guó)工業(yè)涂料行業(yè)發(fā)展現(xiàn)狀、市場(chǎng)前景、投資方向分析報(bào)告(智研咨詢發(fā)布)
- 自然科學(xué)基礎(chǔ)(小學(xué)教育專業(yè))全套教學(xué)課件
- 《工程勘察資質(zhì)分級(jí)標(biāo)準(zhǔn)和工程設(shè)計(jì)資質(zhì)分級(jí)標(biāo)準(zhǔn)》
評(píng)論
0/150
提交評(píng)論