資料庫sql高階查詢教務 答案

2022-11-30 00:27:02 字數 2865 閱讀 9417

設教學資料庫education有三個關係:

學生關係s(sno,sname,age,***,sdept);

學習關係sc(sno,cno,grade);

課程關係c(cno,cname,cdept,tname)

查詢問題:

1:查所有年齡在20歲以下的學生姓名及年齡。

2:查考試成績有不及格的學生的學號

3:查所年齡在20至23歲之間的學生姓名、系別及年齡。

4:查計算機系、數學系、資訊系的學生姓名、性別。

5:查既不是計算機系、數學系、又不是資訊系的學生姓名、性別

6:查所有姓「劉」的學生的姓名、學號和性別。

7:查姓「上官」且全名為3個漢字的學生姓名。

8:查所有不姓「張」的學生的姓名。

9:查db_design課程的課程號。

10:查缺考的學生的學號和課程號。

11:查年齡為空值的學生的學號和姓名。

12:查計算機系20歲以下的學生的學號和姓名。

13:查計算機系、數學系、資訊系的學生姓名、性別。

14:查詢選修了c3課程的學生的學號和成績,其結果按分數的降序排列。

15:查詢全體學生的情況,查詢結果按所在系公升序排列,對同一系中的學生按年齡降序排列。

16:查詢學生總人數。

17:查詢選修了課程的學生人數。

18:計算選修了c1課程的學生平均成績。

19:查詢學習c3課程的學生最高分數。

20:查詢各個課程號與相應的選課人數。

21:查詢計算機系選修了3門以上課程的學生的學號。

22:求基本表s中男同學的每一年齡組(超過50人)有多少人?要求查詢結果按人數公升序排列,人數相同按年齡降序排列。

23:查詢每個學生及其選修課程的情況。

24:查詢選修了c2課程且成績在90分以上的所有學生。

25:查詢每個學生選修的課程名及其成績。

26:統計每一年齡選修課程的學生人數。

27:查詢選修了c2課程的學生姓名。

28:查詢與「張三」在同乙個系學習的學生學號、姓名和系別。

29:查詢選修課程名為「資料庫」的學生學號和姓名。

30:查詢與「張三」在同乙個系學習的學生學號、姓名和系別。

31:查詢選修課程名為「資料庫」的學生學號和姓名。

32:查詢選修了c2課程的學生姓名。

33:查詢所有未選修c2課程的學生姓名。

34:查詢與「張三」在同乙個系學習的學生學號、姓名和系別。

35:查詢選修了全部課程的學生姓名。

36:查詢所學課程包含學生s3所學課程的學生學號

(1)比較

例1:查所有年齡在20歲以下的學生姓名及年齡。

select sname,sage

from s

where sage<20; (not age>=20)

例2:查考試成績有不及格的學生的學號

select distinct sno

from sc

where grade<60;

(2)確定範圍

例3:查所年齡在20至23歲之間的學生姓名、系別及年齡。

select sname,sdept,sage

from s

where sage between 20 and 23;

(3)確定集合

例4:查計算機系、數學系、資訊系的學生姓名、性別。

select sname,s***

from s

where sdept in (』cs』, 『is』, 『math』);

例5:查既不是計算機系、數學系、又不是資訊系的學生姓名、性別

select sname,s***

from s

where sdept not in (』cs』, 『is』, 『math』);

(4)字元匹配

例6:查所有姓「劉」的學生的姓名、學號和性別。

select sname,sno,s***

from s

where sname like 『劉%』;

例7:查姓「上官」且全名為3個漢字的學生姓名。

select sname

from s

where sname like 『上官_ _』;

例8:查所有不姓「張」的學生的姓名。

select sname,sno,s***

from s

where sname not like 『張%』;

例9:查db_design課程的課程號。

select cno

from c

where cname like 『db\_design』 escape 『\』;

(5)涉及空值的查詢

例10:查缺考的學生的學號和課程號。

select sno,cno

from sc

where grade is null; (不能用=代替)

例11:查年齡為空值的學生的學號和姓名。

select sno,sname

from s

where sage is null;

(6)多重條件查詢

例12:查計算機系20歲以下的學生的學號和姓名。

select sno,sname

from s

where sdept=『cs』 and sage<20;

例13:查計算機系、數學系、資訊系的學生姓名、性別。

select sname,s***

from s

where sdept =』cs』 or sdept =『is』 or sdept =』math』);

3、對查詢結果排序

例14:查詢選修了c3課程的學生的學號和成績,其結果按分數的降序排列。

實驗三資料庫SQL基本表查詢

資料庫原理及應用實驗報告 實驗報告 實驗型別 綜合設計實驗室 軟體實驗室一 sql基本表查詢 1 實驗專案的目的和任務 熟練掌握查詢語句的一般格式,熟練掌握連線 巢狀和集合查詢的使用。2.程式 部分 select from student where s in select s from sc wh...

資料庫SQL練習

建立學生student表 sno學號 主鍵3 sname姓名8 s 性別2 sbirthday生日 class班級5 建立課程course表 cno 課程號 主鍵 5 cname課程名10 tno教師號3 建立分數score表 sno 學號3 cno課程號5 degree分數 建立老師teacher...

通用SQL資料庫查詢語句精華使用簡介

標籤 sql 簡單的transact sql查詢只包括選擇列表 from子句和where子句 一 簡單查詢 簡單的transact sql查詢只包括選擇列表 from子句和where子句。它們分別說明所查詢列 查詢的表或檢視 以及搜尋條件等。例如,下面的語句查詢testtable表中姓名為 張三 的...