數(shù)據(jù)庫中SQL查詢語句習(xí)題含的答案解析_第1頁
數(shù)據(jù)庫中SQL查詢語句習(xí)題含的答案解析_第2頁
數(shù)據(jù)庫中SQL查詢語句習(xí)題含的答案解析_第3頁
數(shù)據(jù)庫中SQL查詢語句習(xí)題含的答案解析_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、查詢問題:設(shè)教學(xué)數(shù)據(jù)庫Education有三個(gè)關(guān)系: 學(xué)生關(guān)系 S (SNOt SNAME, AGE, SEX, SDEPT);學(xué)習(xí)關(guān) 系 SC (SNO, CNO, GRADE);課程關(guān)系 C (CNO, CNAME, CDEPT, TNAME)(5) 檢索至少選修課程號(hào)為C2和C4的學(xué)生學(xué)號(hào);SELECT SnoFROM SC X, SC YWHERE X. Sno=Y. Sno AND X. Cno= C2,AND Y. Cno=C4,;請瀏覽后下載,資料供參考,期待您的好評(píng)與關(guān)注!1 SELECT SnameFROM SWHERE Sno NOT IN(SELECT SnoFROM S

2、CWHERE Cno= 4C2* ):(1) 檢索計(jì)算機(jī)系的全體學(xué)生的學(xué)號(hào),姓名和性別;(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) 檢索至少選修課程號(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)。(6) 檢索不學(xué)C2課的學(xué)生姓名和年齡;2 SELECT SnameFROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE SC. Sno=S. SnoAND

3、Cno= C2):(4) 檢索選修課程號(hào)為C2或C4的學(xué)生學(xué)號(hào); SELECT SnoFROM SCWHERE Cno= “C2 OR Cno= “C4,;(1) 檢索計(jì)算機(jī)系的全體學(xué)生的學(xué)號(hào),姓名和性別; SELECT Sno, Sname, SexFROM SWHERE Sdept CS(2)檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與姓名;1 SELECT Sno. Sname FROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno= C2,)2 SELECT S Sno, SnameFROM S, SCWHERE S. Sno=SC. SnoANDSC. Cno

4、= C2;(3)檢索選修課程名為“DS”的學(xué)生學(xué)號(hào)與姓名 本查詢涉及到學(xué)號(hào)、姓名和課程名三個(gè)屬性,分別 存放在S和C表中,但S和C表沒有直接聯(lián)系,必須通 過SC表建立它們二者的聯(lián)系。Cf SC f S 基本思路:(1) 首先在C表中找出“DS”課程的課程號(hào)Cno;(2) 然后在SC表中找出Cno等于第一步給出的Cno集 合中藥集木元素Cno;(3) 最后在S關(guān)系中選出Sno等于第二步中Sno集合 中某個(gè)元素的元組,取出Sno和Sname送入結(jié)果表列。 SELECT Sno, SnameFROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno IN(SELECT

5、 CnoFROM CWHERE Cname= DS);(7) 檢索學(xué)習(xí)全部課程的學(xué)生姓名;在表S中找學(xué)生,要求這個(gè)學(xué)生學(xué)了全部課程。換言之, 在S表中找學(xué)生,在C中不存在一門課程,這個(gè)學(xué)生沒 有學(xué)。SELECT SnameFROM SWHERE NOT EXISTS(SELECT FROM CWHERE NOT EXISTS(SELECT FROM SCWHERE SC. Sno=S Sno AND SC- Cno=C. Cno);(8) 查詢所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào)。 分析:不存在這樣的課程Y,學(xué)生S3選了 Y,而其他學(xué) 生沒有選。SELECT DISTINCT SnoFROM

6、 SC AS X WHERE NOT EXISTS(SELECT FROM SC AS YWHERE Y. Sno= S3 AND NOT EXISTS(SELECT FROM SC AS ZWHERE Z. Sno=X. Sno AND 乙 Cno=Y. Cno); 設(shè)教學(xué)數(shù)據(jù)庫Education有三個(gè)關(guān)系:學(xué)生關(guān)系 S (SNO, SNAME, AGE, SEX, SDEPT);學(xué)習(xí)關(guān)系 SC (SNO, CNO, GRADE);課程關(guān)系 C (CNO, CNAME, CDEPT, TNAME)查詢問題:1:查所有年齡在20歲以下的學(xué)生姓名及年齡。2:查考試成績有不及格的學(xué)生的學(xué)號(hào)3:查所

7、年齡在20至23歲之間的學(xué)生姓名、系別及年 齡。4:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性別。5:查既不是計(jì)算機(jī)系、數(shù)學(xué)系、又不是信息系的學(xué)生 姓名、性別6:查所有姓“劉”的學(xué)生的姓名、學(xué)號(hào)和性別。7:查姓“上官”且全名為3個(gè)漢字的學(xué)生姓名。&查所有不姓“張”的學(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)和成績,其結(jié)果 按分?jǐn)?shù)的降序排列。15:查詢?nèi)w學(xué)生的情況,查詢結(jié)果按所在系升序

8、排列, 對(duì)同一系中的學(xué)生按年齡降序排列。16:查詢學(xué)生總?cè)藬?shù)。17:查詢選修了課程的學(xué)生人數(shù)。18:計(jì)算選修了 C1課程的學(xué)生平均成績。19:查詢學(xué)習(xí)C3課程的學(xué)生最高分?jǐn)?shù)。20:查詢各個(gè)課程號(hào)與相應(yīng)的選課人數(shù)。21:査詢計(jì)算機(jī)系選修了 3門以上課程的學(xué)生的學(xué)號(hào)。22:求基本表S中男同學(xué)的每一年齡組(超過50人) 有多少人?要求查詢結(jié)果按人數(shù)升序排列,人數(shù)相同按 年齡降序排列。23:查詢毎個(gè)學(xué)生及其選修課程的情況。24:查詢選修了 C2課程且成績在90分以上的所有學(xué)生。25:查詢毎個(gè)學(xué)生選修的課程名及其成績。26:統(tǒng)計(jì)每一年齡選修課程的學(xué)生人數(shù)。27:查詢選修了 C2課程的學(xué)生姓名。28:查詢

9、與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名 和系別。29:查詢選修課程名為“數(shù)據(jù)庫”的學(xué)生學(xué)號(hào)和姓名。30:查詢與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名 和系別。31:查詢選修課程名為“數(shù)據(jù)庫”的學(xué)生學(xué)號(hào)和姓名。32:查詢選修了 C2課程的學(xué)生姓名。33:查詢所有未選修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, SageFROM SWHERE Sage=20)例2:查考試成績有不及格的學(xué)生的學(xué)

10、號(hào)SELECT DISTINCT SnoFROM SCWHERE grade60;(2) 確定范圍例3:查所年齡在20至23歲之間的學(xué)生姓名、系別及 年齡。SELECT Sname, Sdept, SageFROM SWHERE Sage BETWEEN 20 AND 23;(3) 確定集合例4:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性別。SELECT Sname, SsexFROM SWHERE Sdept IN C CS,IS , MATH);例5:查既不長計(jì)算機(jī)系.數(shù)學(xué)系、又不是信息系的學(xué) 生姓名、性別SELECT Sname, SsexFROM SWHERE Sdept NOTIN (

11、CSJ “IS, MATH);(4)字符匹配例6:査所有姓“劉”的學(xué)生的姓名、學(xué)號(hào)和性別。SELECT Sname, Sno, SsexFROM SWHERE Sname LIKE “劉例7:查姓“上官”且全名為3個(gè)漢字的學(xué)生姓名。SELECT SnameFROM SW1ERE Sname LIKE “上官_例8:查所有不姓“張”的學(xué)生的姓名。SELECT Sname, Snof SsexFROM SWHERE Sname NOT LIKE 張 例9:查DB_Design課程的課程號(hào)。SELECT CnoFROM CWHERE Cname LIKE DB_Design ESCAPE(5) 涉及

12、空值的查詢例10:查缺考的學(xué)生的學(xué)號(hào)和課程號(hào)。SELECT Sno, CnoFROM SCWHERE Grade IS NULL; (不能用二代替)有成績的 WHERE Grade IS NOT NULLL; 例11:查年齡為空值的學(xué)生的學(xué)號(hào)和姓名。SELECT Sno, SnameFROM SWHERE Sage IS NULL;(6) 多重條件查詢例12:查計(jì)算機(jī)系20歲以下的學(xué)生的學(xué)號(hào)和姓名。SELECT Sno, SnameFROM SWHERE Sdept= CS, AND Sage3;WHERE子句與HAVING短語的根本區(qū)別在于作用對(duì)象不 同。WHERE子句作用于基本表或視圖,從

13、中選擇滿足條 件的元組。HAVING短語作用于組,從中選擇滿足條件的 組。例22:求基本表S中男同學(xué)的每一年齡組(超過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é)生及其選修課程的情況。SELECTS Sno,Sname,Sage,Ssex,Sdept,Cno,GradeFROM S, SCFROM SASS1, SAS S2WHER

14、E SI.Sdept=S2.Sdept AND S2.Sname=張三WHERE S. Sno=SC. Sno;例24:查詢選修了 C2課程且成績在90分以上的所有學(xué) 生。SELECT SSno, SnameFROM S, SCWHERE S. Sno二SC. SnoAND SC. Cno=切AND SC. Grade 90;例25:查詢每個(gè)學(xué)生選修的課程名及其成績。SELECT SSno, Sname, Cname, SC. GradeFROM S, SC, CWHERE S. Sno=SC. Sno AND SC. Cno=C. Cno例26:統(tǒng)計(jì)每一年齡選修課程的學(xué)生人數(shù)。SELECT

15、Sage, COUNT (DISTINCT S. Sno)FROM S, SCWHERE S. Sno=SC SnoGROUP BY S;由于要統(tǒng)計(jì)每一個(gè)年齡的學(xué)生人數(shù),因此要把滿足 WHERE子句中條件的查詢結(jié)果按年齡分組,在每一組中 的學(xué)生年齡相同。此時(shí)的SELECT子句應(yīng)對(duì)每一組分開 進(jìn)行操作,在每一組中,年齡只有一個(gè)值,統(tǒng)計(jì)的人數(shù) 是這一組中的學(xué)生人數(shù)。1、嵌套查詢(1) 帶有IN謂詞的子查詢指父查詢與子查詢之間用IN進(jìn)行聯(lián)接,判斷某個(gè) 屬性列值是否在子查詢的結(jié)果中。例27:查詢選修了 C2課程的學(xué)生姓名。SELECT SnameFROM SWHERE Sno IN(SELECT Sn

16、oFROM SCWHERE Cno= C2 );例28:查詢與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、 姓名和系別。分析:(1) 確定“張三”所在的系;(2) 查找所有在X系學(xué)習(xí)的學(xué)生。SELECT SdeptFROM SWHERE Sname=張三SELECT Sno, Sname, SdeptFROM SWHERE Sdept=把第一步査詢嵌入到第二步查詢中,用以構(gòu)造第二步 查詢的條件。SELECT Sno, Sname, SdeptFROM SWHERE Sdept IN(SELECT SdeptFROM SWHERE Sname=張三,);例29:查詢選修課程名為“數(shù)據(jù)庫”的學(xué)生學(xué)號(hào)和姓名。

17、 本查詢涉及到學(xué)號(hào)、姓名和課程名三個(gè)屬性,分 別存放在S和C表中,但S和C表沒有直接聯(lián)系,必須 通過SC表建立它們二者的聯(lián)系。C f SCf s基本思路:(1) 首先在C表中找出“DB”課程的課程號(hào)Cn。;(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= DB); 聯(lián)接

18、查詢方式(2)帶有比較運(yùn)算符的子查詢例30:查詢與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、 姓名和系別。SELECT Sno, Sname, SdeptFROM SWHERE Sdept =(SELECT SdeptFROM SWHERE Sname=張三例31:查詢選修課程名為“數(shù)據(jù)庫”的學(xué)生學(xué)號(hào)和姓名o SELECT Sno, SnameFROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno =(SELECT CnoFROM CWHERE Cname= DB);(3) 帶有EXISTS謂詞的子查詢(1)帶有EXISTS謂詞的子查詢不返回任何實(shí)際數(shù)據(jù), 它只產(chǎn)生邏輯值。例32:查詢選修了 C2課程的學(xué)生姓名。1. SELECT SnameFROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno= 8 );2. SELECT SnameFROM SWHERE EXISTS(SELECT *FROM SCWHERE SC. Sno=S. Sno AND Cno= “C2 );例33:查詢所有未選修C2課程的學(xué)生姓名。SELECT SnameFROM SWHERE NOT EXISTS( SELECT FROM SCWHERE SC. Sno=S. Sno AND Cno= C2 )

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論