數據庫:SQL數據查詢(詳細、全面)

以下題目中加粗字體爲重點哦~
一、查詢指定列、全部列
1.查詢全體學生的學號和姓名
SELECT SNO, SN
FROM S
2.查詢全部列
SELECT *
FROM S

二、查詢經過計算的值
3. 查詢全體學生的姓名、出生年份
SELECT SN, 2020-AGE
FROM S
4. 查村全體學生的姓名、出生年份和系名(要求用小寫字母表示系名)
SELECT SN, 2020-AGE as BIRTHYEAR, lower(DEPT)
FROM S
注:大寫字母表示 upper()

三、消除重複
5. 查詢所有選修過課的學生學號
SELECT DISTINCT SNO
FROM SC

四、比較運算符
6. 查詢計算機系所有學生的名單
SELECT SN
FROM S
WHERE DEPT = ‘計算機’
7. 查詢所有年齡在20歲以下的學生姓名及其年齡
SELECT SN, AGE
FROM S
WHERE AGE<20
或者
SELECT SN, AGE
FROM S
WHERE NOT AGE>=20
8. 查詢考試成績有不及格的學生的學號
SELECT DISTINCT SNO
FROM SC
WEHRE SCORE<60

五、確定範圍
9. 查詢年齡在20~30歲的學生的姓名、系別、年齡
SELECT SN, DEPT, AGE
FROM S
WHERE AGE BETWEEN 20 AND 30
10. 查詢年齡不在20~30歲的學生的姓名、系別、年齡
SELECT SN, DEPT, AGE
FROM S
WHERE AGE NOT BETWEEN 20 AND 30

六、確定集合
11. 查詢信息系、自動化系、計算機系的學生的姓名和性別
SELECT SN, SEX
FROM S
WHERE DEPT IN (‘信息’,‘自動化’,‘計算機’)
12. 查詢不是信息系、自動化系、計算機系的學生的姓名和性別
SELECT SN, SEX
FROM S
WHERE DEPT NOT IN (‘信息’,‘自動化’,‘計算機’)

七、字符匹配
13. 查詢所有姓劉的學生的姓名、學號、性別
SELECT SN, SNO, SEX
FROM S
WHERE SN LIKE ‘劉%’
14. 查詢所有姓歐陽且全名爲3個漢字的學生的姓名
SELECT SN
FROM S
WHERE SX LIKE ‘歐陽_’
15. 查詢名字中第二字爲‘陽’字的學生的姓名和學號
SELECT SN, SNO
FROM S
WHERE SN LIKE '_陽%'
16. 查詢所有不姓吳的學生姓名
SELECT SN
FROM S
WHERE SN NOT LIKE ‘吳%’
17. 查詢DB_Design 課程的課程號和學分
SELECT CNO, CT
FROM C
WHERE CN LIKE ‘DB╲_Design’ ESCAPE '╲’

八、涉及空值的查詢
18. 查詢缺少成績的學生的學號和相應的課程號
SELECT SNO, CNO
FROM SC
WHERE SCORE IS NULL
19. 查詢有成績的學生的學號和相應的課程號
SELECT SNO, CNO
FROM SC
WHERE SCORE IS NOT NULL

九、多重條件查詢
20. 查詢計算機系年齡在20歲以下的學生姓名
SELECT SN
FRON S
WHERE DEPT = ‘計算機’ AND AGE<20
21. 查詢信息系、自動化系、計算機系的學生的姓名和性別(11題)
SELECT SN, SEX
FROM S
WHERE DEPT = ‘信息’ OR DEPT = ‘自動化’ OR DEPT = ‘計算機’

十、集函數 - 統計彙總查詢
22. 查詢學生總人數
SELECT COUNT(*)
FROM S
23. 查詢選修了課程的學生人數
SELECT COUNT( DISTINCT SNO )
FROM SC
24. 程序C1課程的學生人數、最高成績、最低成績、平均成績
SELECT COUNT(SNO), MAX(SCORE), MIN(SCORE), AVG(SCORE)
FROM SC
WHERE CNO=‘C1’

十一、分組查詢
25. 查詢各個課程號與相應的選課人數
SELECT CNO, COUNT(SNO)
FROM SC
GROUP BY CNO
26. 查詢有3人以上學生(包括3人)選修的課程的課程號及選修人數
SELECT CNO, COUNT( SNO )
FROM SC
GROUP BY CNO
HAVING COUNT(*) >=3

十二、查詢的排序
27. 查詢選修了3號課程的學生的學號及其成績,查詢結果按分數降序排列
SELECT SNO, SCORE
FROM SC
WHERE CNO=‘C3’
ORDER BY SCORE DESC
28. 查詢全體學生情況,查詢結果按所在系升序排列,對同一系中的學生按年齡降序排列
SELECT *
FROM S
ORDER BY DEPT ASC , AGE DESC

十三、連接查詢
29. 等值連接,查詢每個學生及其選修課程的情況
SELECT *
FROM S,SC
WHERE S.SNO = SC.SNO
30. 自然連接表S 和 SC
SELECT S.SNO,SN,SEX,AGE,DEPT,CNO,SCORE
FROM S,SC
WHERE S.SNO = SC.SNO
31. 自身連接,查詢比李濤年齡大的學生的姓名、年齡和李濤的年齡
SELECT X.SN AS 姓名, X.AGE AS 年齡, Y.AGE AS 李濤的年齡
FROM S AS X, S AS Y
WHERE X.AGE > Y.AGE AND Y.SN = ‘李濤’
31. 外連接,改編30題(S表中的學生,及時美沒有選課,依舊顯示其對應行信息 )
SELECT S.SNO,SN,SEX,AGE,DEPT,CNO,SCORE
FROM S LEFT JOIN SC
WHERE S.SNO = SC.SNO
注:左外連接 LETFT JOIN; 右外連接 RIGHT JOIN; 全外連接 FULL JOIN;交叉連接(廣義笛卡爾積連接) CROSS JOIN;

十四、合併查詢
32. 從SC數據表中查詢出學號爲“S1”的同學的學號和總分,再從SC數據表中查詢出學號爲“S5”的同學的學號和總分,然後將兩個查詢結果合併成一個結果集。
SELECT SNO AS 學號, SUM( SCORE ) AS 總分
FROM SC
WHERE SNO = ‘S1’
UNION
SELECT SNO AS 學號, SUM( SCORE ) AS 總分
FROM SC
WHERE SNO = ‘S5’

十五、嵌套查詢
33. 查詢與“王林”在同一個系學習的學生的學號、姓名和所在系
SELECT SNO, SN, DEPT
FROM S
WHERE DEPT IN
( SELECT DEPT
FROM S
WHERE SN = ‘王林’ )
34. 查詢與“王林”在同一個系學習的學生的學號、姓名和所在系(一個學生只可能在一個系學習)
SELECT SNO, SN, DEPT
FROM S
WHERE DEPT =
( SELECT DEPT
FROM S
WHERE SN = ‘王林’ )
35. 查詢其他系中比信息系所有學生年齡小的學生的姓名及年齡
SELECT SN, AGE
FROM S
WHERE AGE < ALL
( SELECT AGE
FROM S
WHERE DEPT = ‘信息’ ) AND DEPT != ‘信息’
36. 查詢所有選修了C1號課程的學生姓名
SELECT SN
FROM S
WHERE EXISTS
( SELECT *
FROM SC
WHERE SNO = S.SNO AND CNO = ‘C1’ )
37. 查詢所有未選修 C1號課程的學生姓名
SELECT SN
FROM S
WHERE NOT EXISTS
( SELECT *
FROM SC
WHERE SNO=S.SNO AND CNO = ‘C1’ )
38. 查詢選修了全部課程的學生姓名
在這裏插入圖片描述
39. 查詢選修課程中包含了“S08”學生所選修課程 的學生學號
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章