105年法務部調查局調查人員四等資料庫應用概要
四、假設某一大學之學生修課成績資料庫如下,共有三個表,分別為學生資料表S (學號,學生姓名,就讀學系,年級)、課程資料表 C (課程代號,課程名稱,學分數,任課老師代號)、修課成績表 T (學號,課程代號,成績)。 (一)請問從以下的表格中,應該建立那些主鍵 (Primary Key) 與外部鍵(Foreign Key),以確保資料的正確性與一致性?(5分) (二)請寫出 SQL 語句,從上述資料庫中,找出那些課程名稱是有兩個 (含以上) 不同的老師開設的。(10分) (三)請寫出 SQL 語句,從上述資料庫中,找出修課成績低於60分同學的學號、學生姓名與所修讀的課程名稱。(10分) |
答:
S資料表:
學號 |
學生姓名 |
就讀學系 |
年級 |
S1 |
Mary |
電機 |
一 |
S2 |
Betty |
數學 |
二 |
S3 |
John |
物理 |
二 |
S4 |
Peter |
電機 |
一 |
S5 |
Jack |
化學 |
三 |
T資料表:
學號 |
課程代號 |
成績 |
S1 |
C1 |
80 |
S1 |
C2 |
85 |
S1 |
C4 |
90 |
S1 |
C5 |
85 |
S2 |
C1 |
50 |
S2 |
C4 |
80 |
S2 |
C5 |
92 |
S3 |
C1 |
80 |
S3 |
C4 |
86 |
S4 |
C6 |
58 |
C資料表:
課程代號 |
課程名稱 |
學分數 |
任課老師代號 |
C1 |
微積分 |
3 |
T1 |
C2 |
英文 |
2 |
T5 |
C3 |
微積分 |
3 |
T9 |
C4 |
電腦概論 |
2 |
T3 |
C5 |
應用文 |
2 |
T6 |
C6 |
電腦概論 |
2 |
T7 |
(一)請問從以下的表格中,應該建立那些主鍵與外部鍵,以確保資料的正確性與一致性?
1.S資料表:主鍵:學號;外部鍵:無。
2.T資料表:
(1)主鍵:{學號,課程代號};
(2)外部鍵:
a.學號,參考到 S 資料表的職員編號。
b.課程代號,參考到 C 資料表的課程代號。
3.C資料表:主鍵:課程代號;外部鍵:無。
(二)SQL語句
找出那些課程名稱是有兩個 (含以上) 不同的老師開設的。
Select 課程名稱
From C
Group By 課程名稱
Having Count(任課老師代號) >= 2
執行結果:
課程名稱 |
微積分 |
電腦概論 |
(三)SQL語句
找出修課成績低於60分同學的學號、學生姓名與所修讀的課程名稱。
Select S.學號, S.學生姓名, C.課程名稱
From S, T, C
Where S.學號 = T.學號 And C.課程代號 = T.課程代號 And T.成績<60
執行結果:
學號 |
學生姓名 |
課程名稱 |
S2 |
Betty |
微積分 |
S4 |
Peter |
電腦概論 |