




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、查詢(xún)問(wèn)題:設(shè)教學(xué)數(shù)據(jù)庫(kù)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) 檢索計(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)查詢(xún)所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào)。(1)檢索計(jì)算機(jī)系的全體學(xué)
2、生的學(xué)號(hào),姓名和性別;SELECT Sno,Sname,Sex FROM SWHERE Sdept =CS;(2)檢索學(xué)習(xí)課程號(hào)為C2的學(xué)生學(xué)號(hào)與姓名;2.SELECT S.Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno AND SC.Cno=C2;1.SELECT Sno,SnameFROM SWHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=C2) (3)檢索選修課程名為“DS”的學(xué)生學(xué)號(hào)與姓名 本查詢(xún)涉及到學(xué)號(hào)、姓名和課程名三個(gè)屬性,分別存放在S和C表中,但S和C表沒(méi)有直接聯(lián)系,必須通過(guò)SC表建立它們二者的聯(lián)系。 C S
3、C S基本思路:(1)首先在C表中找出“DS”課程的課程號(hào)Cno;(2)然后在SC表中找出Cno等于第一步給出的Cno 集合中的某個(gè)元素Cno;(3)最后在S關(guān)系中選出Sno等于第二步中Sno 集合中某個(gè)元素的元組,取出Sno 和Sname送入結(jié)果表列。SELECT Sno,Sname FROM SWHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=DS);(4) 檢索選修課程號(hào)為C2或C4的學(xué)生學(xué)號(hào);SELECT SnoFROM SCWHERE Cno=C2 OR Cno=C4;(5) 檢索
4、至少選修課程號(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 ;(6) 檢索不學(xué)C2課的學(xué)生姓名和年齡;2.SELECT Sname FROM S WHERE NOT EXISTS ( SELECT * FROM SC WHERE SC.Sno=S.Sno AND Cno=C2); 1.SELECT Sname FROM S WHERE Sno NOT IN ( SELECT Sno FROM SC WHERE Cno=C2);(7) 檢索學(xué)習(xí)全部課程的學(xué)生姓名;在表S中找學(xué)生,要求
5、這個(gè)學(xué)生學(xué)了全部課程。換言之,在S表中找學(xué)生,在C中不存在一門(mén)課程,這個(gè)學(xué)生沒(méi)有學(xué)。SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND SC.Cno=C.Cno));(8) 查詢(xún)所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào)。分析:不存在這樣的課程Y,學(xué)生S3選了Y,而其他學(xué)生沒(méi)有選。SELECT DISTINCT Sno FROM SC AS XWHERE NOT EXISTS (SELECT * FROM SC AS Y WHE
6、RE Y.Sno=S3 AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND Z.Cno=Y.Cno));設(shè)教學(xué)數(shù)據(jù)庫(kù)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)查詢(xún)問(wèn)題:1:查所有年齡在20歲以下的學(xué)生姓名及年齡。2:查考試成績(jī)有不及格的學(xué)生的學(xué)號(hào)3:查所年齡在20至23歲之間的學(xué)生姓名、系別及年齡。4:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性別。5:查既不是計(jì)算機(jī)系、數(shù)學(xué)系、又不
7、是信息系的學(xué)生姓名、性別6:查所有姓“劉”的學(xué)生的姓名、學(xué)號(hào)和性別。7:查姓“上官”且全名為3個(gè)漢字的學(xué)生姓名。8:查所有不姓“張”的學(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:查詢(xún)選修了C3課程的學(xué)生的學(xué)號(hào)和成績(jī),其結(jié)果按分?jǐn)?shù)的降序排列。15:查詢(xún)?nèi)w學(xué)生的情況,查詢(xún)結(jié)果按所在系升序排列,對(duì)同一系中的學(xué)生按年齡降序排列。16:查詢(xún)學(xué)生總?cè)藬?shù)。17:查詢(xún)選修了課程的學(xué)生人數(shù)。18:計(jì)算選修了C1課程的學(xué)生平均成績(jī)。1
8、9:查詢(xún)學(xué)習(xí)C3課程的學(xué)生最高分?jǐn)?shù)。20:查詢(xún)各個(gè)課程號(hào)與相應(yīng)的選課人數(shù)。21:查詢(xún)計(jì)算機(jī)系選修了3門(mén)以上課程的學(xué)生的學(xué)號(hào)。22:求基本表S中男同學(xué)的每一年齡組(超過(guò)50人)有多少人?要求查詢(xún)結(jié)果按人數(shù)升序排列,人數(shù)相同按年齡降序排列。23:查詢(xún)每個(gè)學(xué)生及其選修課程的情況。24:查詢(xún)選修了C2課程且成績(jī)?cè)?0分以上的所有學(xué)生。25:查詢(xún)每個(gè)學(xué)生選修的課程名及其成績(jī)。26:統(tǒng)計(jì)每一年齡選修課程的學(xué)生人數(shù)。27:查詢(xún)選修了C2課程的學(xué)生姓名。28:查詢(xún)與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名和系別。29:查詢(xún)選修課程名為“數(shù)據(jù)庫(kù)”的學(xué)生學(xué)號(hào)和姓名。30:查詢(xún)與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名
9、和系別。31:查詢(xún)選修課程名為“數(shù)據(jù)庫(kù)”的學(xué)生學(xué)號(hào)和姓名。32:查詢(xún)選修了C2課程的學(xué)生姓名。33:查詢(xún)所有未選修C2課程的學(xué)生姓名。34:查詢(xún)與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名和系別。35:查詢(xún)選修了全部課程的學(xué)生姓名。36:查詢(xún)所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號(hào)(1)比較例1:查所有年齡在20歲以下的學(xué)生姓名及年齡。 SELECT Sname,Sage FROM S WHERE Sage<20; (NOT age>=20)例2:查考試成績(jī)有不及格的學(xué)生的學(xué)號(hào) SELECT DISTINCT Sno FROM SC WHERE grade<60;(2)確定范圍例3
10、:查所年齡在20至23歲之間的學(xué)生姓名、系別及年齡。 SELECT Sname,Sdept,Sage FROM S WHERE Sage BETWEEN 20 AND 23; (3)確定集合 例4:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性別。 SELECT Sname,Ssex FROM S WHERE Sdept IN (CS, IS, MATH);例5:查既不是計(jì)算機(jī)系、數(shù)學(xué)系、又不是信息系的學(xué)生姓名、性別 SELECT Sname,Ssex FROM S WHERE Sdept NOT IN (CS, IS, MATH);(4)字符匹配例6:查所有姓“劉”的學(xué)生的姓名、學(xué)號(hào)和性別。 SE
11、LECT Sname,Sno,Ssex FROM S WHERE Sname LIKE 劉%;例7:查姓“上官”且全名為3個(gè)漢字的學(xué)生姓名。 SELECT Sname FROM S WHERE Sname LIKE 上官_ _;例8:查所有不姓“張”的學(xué)生的姓名。 SELECT Sname,Sno,Ssex FROM S WHERE Sname NOT LIKE 張%;例9:查DB_Design課程的課程號(hào)。 SELECT Cno FROM C WHERE Cname LIKE DB_Design ESCAPE ;(5)涉及空值的查詢(xún)例10:查缺考的學(xué)生的學(xué)號(hào)和課程號(hào)。 SELECT Sno,
12、Cno FROM SC WHERE Grade IS NULL; (不能用=代替) 有成績(jī)的 WHERE Grade IS NOT NULLL; 例11:查年齡為空值的學(xué)生的學(xué)號(hào)和姓名。 SELECT Sno,Sname FROM S WHERE Sage IS NULL;(6)多重條件查詢(xún)例12:查計(jì)算機(jī)系20歲以下的學(xué)生的學(xué)號(hào)和姓名。 SELECT Sno,Sname FROM S WHERE Sdept=CS AND Sage<20;例13:查計(jì)算機(jī)系、數(shù)學(xué)系、信息系的學(xué)生姓名、性別。 SELECT Sname,Ssex FROM S WHERE Sdept =CS OR Sdep
13、t =IS OR Sdept =MATH);3、對(duì)查詢(xún)結(jié)果排序例14:查詢(xún)選修了C3課程的學(xué)生的學(xué)號(hào)和成績(jī),其結(jié)果按分?jǐn)?shù)的降序排列。 SELECT Sno,Grade FROM SC WHERE Cno=C3 ORDER BY Grade DESC;例15:查詢(xún)?nèi)w學(xué)生的情況,查詢(xún)結(jié)果按所在系升序排列,對(duì)同一系中的學(xué)生按年齡降序排列。 SELECT * FROM S ORDER BY Sdep,Sage DESC;4.聚合函數(shù)的使用例16:查詢(xún)學(xué)生總?cè)藬?shù)。 SELECT COUNT(*) FROM S例17:查詢(xún)選修了課程的學(xué)生人數(shù)。 SELECT COUNT(DISTINCT Sno) FR
14、OM SC例18:計(jì)算選修了C1課程的學(xué)生平均成績(jī)。 SELECT AVG(Grade) FROM SC WHERE Cno=C1;例19:查詢(xún)學(xué)習(xí)C3課程的學(xué)生最高分?jǐn)?shù)。 SELECT MAX(Grade) FROM SC WHERE Cno=C3;5、對(duì)查詢(xún)結(jié)果分組例20:查詢(xún)各個(gè)課程號(hào)與相應(yīng)的選課人數(shù)。 SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno; 該SELECT語(yǔ)句對(duì)SC表按Cno的取值進(jìn)行分組,所有具有相同Cno值的元組為一組,然后對(duì)每一組作用聚合函數(shù)COUNT以求得該組的學(xué)生人數(shù)。 如果分組后還要求按一定的條件對(duì)這些組進(jìn)行篩選,最終只輸出滿(mǎn)
15、足指定條件 組,則可以使用HAVING短語(yǔ)指定篩選條件。例21:查詢(xún)計(jì)算機(jī)系選修了3門(mén)以上課程的學(xué)生的學(xué)號(hào)。 SELECT Sno FROM SC WHERE Sdept=CS GROUP BY Sno HAVING COUNT(*)>3; WHERE子句與HAVING短語(yǔ)的根本區(qū)別在于作用對(duì)象不同。WHERE子句作用于基本表或視圖,從中選擇滿(mǎn)足條件的元組。HAVING短語(yǔ)作用于組,從中選擇滿(mǎn)足條件的組。例22:求基本表S中男同學(xué)的每一年齡組(超過(guò)50人)有多少人?要求查詢(xún)結(jié)果按人數(shù)升序排列,人數(shù)相同按年齡降序排列。 SELECT Sage,COUNT(Sno)FROM SWHERE S
16、sex='M'GROUP BY SageHAVING COUNT(*)> 50ORDER BY 2,Sage DESC;二、多表查詢(xún)1、聯(lián)接查詢(xún)例23:查詢(xún)每個(gè)學(xué)生及其選修課程的情況。 SELECT S.Sno,Sname,Sage,Ssex,Sdept,Cno,Grade FROM S, SC WHERE S.Sno=SC.Sno; 例24:查詢(xún)選修了C2課程且成績(jī)?cè)?0分以上的所有學(xué)生。 SELECT S.Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno AND SC.Cno=C2 AND SC.Grade > 90;例25:查詢(xún)每個(gè)
17、學(xué)生選修的課程名及其成績(jī)。 SELECT S.Sno,Sname,Cname,SC.Grade FROM S,SC,C WHERE S.Sno=SC.Sno AND SC.Cno=C.Cno 例26:統(tǒng)計(jì)每一年齡選修課程的學(xué)生人數(shù)。 SELECT Sage,COUNT(DISTINCT S.Sno) FROM S,SC WHERE S.Sno=SC.Sno GROUP BY S; 由于要統(tǒng)計(jì)每一個(gè)年齡的學(xué)生人數(shù),因此要把滿(mǎn)足WHERE子句中條件的查詢(xún)結(jié)果按年齡分組,在每一組中的學(xué)生年齡相同。此時(shí)的SELECT子句應(yīng)對(duì)每一組分開(kāi)進(jìn)行操作,在每一組中,年齡只有一個(gè)值,統(tǒng)計(jì)的人數(shù)是這一組中的學(xué)生人數(shù)
18、。1、嵌套查詢(xún)(1)帶有IN謂詞的子查詢(xún) 指父查詢(xún)與子查詢(xún)之間用IN進(jìn)行聯(lián)接,判斷某個(gè)屬性列值是否在子查詢(xún)的結(jié)果中。例27:查詢(xún)選修了C2課程的學(xué)生姓名。 SELECT Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=C2); 例28:查詢(xún)與“張三”在同一個(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 Sdept=XFROM S AS
19、S1, S AS S2WHERE S1.Sdept=S2.Sdept AND S2.Sname=張三 把第一步查詢(xún)嵌入到第二步查詢(xún)中,用以構(gòu)造第二步查詢(xún)的條件。 SELECT Sno,Sname,Sdept FROM S WHERE Sdept IN (SELECT Sdept FROM S WHERE Sname=張三);例29:查詢(xún)選修課程名為“數(shù)據(jù)庫(kù)”的學(xué)生學(xué)號(hào)和姓名。 本查詢(xún)涉及到學(xué)號(hào)、姓名和課程名三個(gè)屬性,分別存放在S和C表中,但S和C表沒(méi)有直接聯(lián)系,必須通過(guò)SC表建立它們二者的聯(lián)系。 C SC S基本思路:(1)首先在C表中找出“DB”課程的課程號(hào)Cno;(2)然后在SC表中找出C
20、no等于第一步給出的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 WHERE Cname=DB);聯(lián)接查詢(xún)方式(2)帶有比較運(yùn)算符的子查詢(xún)例30:查詢(xún)與“張三”在同一個(gè)系學(xué)習(xí)的學(xué)生學(xué)號(hào)、姓名和系別。 SELECT Sno,Sname,Sdept FROM S WHERE Sdept = (SELECT Sdept FROM
21、 S WHERE Sname=張三);例31:查詢(xún)選修課程名為“數(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 WHERE Cname=DB);(3)帶有EXISTS謂詞的子查詢(xún)(1)帶有EXISTS謂詞的子查詢(xún)不返回任何實(shí)際數(shù)據(jù),它只產(chǎn)生邏輯值。例32:查詢(xún)選修了C2課程的學(xué)生姓名。 1.SELECT Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=C2); 2.SELECT Sname FROM S WHERE EXISTS ( SELECT * FROM SC WHERE SC.Sno=S.Sno AND Cno=C2); 例33:查詢(xún)所有未選修C2課程的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織品設(shè)計(jì)中的共享經(jīng)濟(jì)理念試題及答案
- 垃圾合同協(xié)議書(shū)
- 村莊保潔合同協(xié)議書(shū)
- 院子繼承合同協(xié)議書(shū)
- 合同書(shū)股份協(xié)議書(shū)
- 水庫(kù)合同協(xié)議書(shū)
- 供貨協(xié)議書(shū)合同范本
- 雇傭送貨司機(jī)合同協(xié)議書(shū)
- 圖書(shū)代銷(xiāo)合同協(xié)議書(shū)
- 儲(chǔ)蓄合同協(xié)議書(shū)
- 沉浸式學(xué)習(xí)讓你學(xué)習(xí)更高效課件高二下學(xué)期高效學(xué)習(xí)主題班會(huì)
- 國(guó)家開(kāi)放大學(xué)《管理信息系統(tǒng)》大作業(yè)參考答案
- TCAICC 001-2024 張家界莓茶質(zhì)量等級(jí)評(píng)價(jià)
- 人教版一下數(shù)學(xué)克的認(rèn)識(shí)公開(kāi)課課件
- 走進(jìn)重高-培優(yōu)講義-數(shù)學(xué)-八年級(jí)-上冊(cè)-(浙教版)
- 初中物理競(jìng)賽練習(xí)題集(共14講)含答案
- 2024年江蘇省南京市聯(lián)合體中考三模英語(yǔ)試題(解析版)
- 四年級(jí)數(shù)學(xué)脫式計(jì)算練習(xí)題100道
- 創(chuàng)新與發(fā)明-按圖索驥、循章創(chuàng)新智慧樹(shù)知到期末考試答案章節(jié)答案2024年廣州大學(xué)
- 2024年山東高考化學(xué)真題試題(原卷版+含解析)
- 3.1.4 禁止編入列車(chē)的機(jī)車(chē)車(chē)輛課件講解
評(píng)論
0/150
提交評(píng)論