數(shù)據(jù)庫——數(shù)據(jù)庫練習(xí)題
一、設(shè)有一數(shù)據(jù)庫,包括四個表:學(xué)生表(Student)、課程表(Course)、成績表(Score)以及教師信息表(Teacher)。
? ? ? ?四個表的結(jié)構(gòu)分別如表1-1的表(一)~表(四)所示,數(shù)據(jù)如表1-2的表(一)~表(四)所示。用SQL語句創(chuàng)建四個表并完成相關(guān)題目。
表1-1數(shù)據(jù)庫的表結(jié)構(gòu)?
表(一)Student?(學(xué)生表)?????????????????????????
屬性名
數(shù)據(jù)類型
可否為空
含?義
Sno
Char(3)
否
學(xué)號(主碼)
Sname
Char(8)
否
學(xué)生姓名
Ssex
Char(2)
否
學(xué)生性別
Sbirthday
datetime
可
學(xué)生出生年月
Class
Char(5)
可
學(xué)生所在班級
?
表(二)Course(課程表)
屬性名
數(shù)據(jù)類型
可否為空
含?義
Cno
Char(5)
否
課程號(主碼)
Cname
Varchar(10)
否
課程名稱
Tno
Char(3)
否
教工編號(外碼)
表(三)Score(成績表)
屬性名
數(shù)據(jù)類型
可否為空
含?義
Sno
Char(3)
否
學(xué)號(外碼)
Cno
Char(5)
否
課程號(外碼)
Degree
Decimal(4,1)
可
成績
主碼:Sno+?Cno
表(四)Teacher(教師表)
屬性名
數(shù)據(jù)類型
可否為空
含?義
Tno
Char(3)
否
教工編號(主碼)
Tname
Char(4)
否
教工姓名
Tsex
Char(2)
否
教工性別
Tbirthday
datetime
可
教工出生年月
Prof
Char(6)
可
職稱
Depart
Varchar(10)
否
教工所在部門
表1-2數(shù)據(jù)庫中的數(shù)據(jù)
表(一)Student
Sno
Sname
Ssex
Sbirthday
class
108
曾華
男
1977-09-01
95033
105
匡明
男
1975-10-02
95031
107
王麗
女
1976-01-23
95033
101
李軍
男
1976-02-20
95033
109
王芳
女
1975-02-10
95031
103
陸君
男
1974-06-03
95031
見文本文檔?
?
表(二)Course
Cno
Cname
Tno
3-105
計算機(jī)導(dǎo)論
825
3-245
操作系統(tǒng)
804
6-166
數(shù)字電路
856
9-888
高等數(shù)學(xué)
831
表(三)Score
Sno
Cno
Degree
103
3-245
86
105
3-245
75
109
3-245
68
103
3-105
92
105
3-105
88
109
3-105
76
101
3-105
64
107
3-105
91
108
3-105
78
101
6-166
85
107
6-166
79
108
6-166
81
表(四)Teacher
Tno
Tname
Tsex
Tbirthday
Prof
Depart
804
李誠
男
1958-12-02
副教授
計算機(jī)系
856
張旭
男
1969-03-12
講師
電子工程系
825
王萍
女
1972-05-05
助教
計算機(jī)系
831
劉冰
女
1977-08-14
助教
電子工程系
1、?查詢Student表中的所有記錄的Sname、Ssex和Class列。
2、?查詢教師所有的單位即不重復(fù)的Depart列。
3、?查詢Student表的所有記錄。
4、?查詢Score表中成績在60到80之間的所有記錄。
5、?查詢Score表中成績?yōu)?5,86或88的記錄。
6、?查詢Student表中“95031”班或性別為“女”的同學(xué)記錄。
7、?以Class降序查詢Student表的所有記錄。
8、?以Cno升序、Degree降序查詢Score表的所有記錄。
9、?查詢“95031”班的學(xué)生人數(shù)。
10、?查詢Score表中的最高分的學(xué)生學(xué)號和課程號。(子查詢或者排序)
11、?查詢每門課的平均成績。
12、查詢Score表中至少有5名學(xué)生選修的并以3開頭的課程的平均分?jǐn)?shù)。
13、查詢分?jǐn)?shù)大于70,小于90的Sno列。
14、查詢所有學(xué)生的Sname、Cno和Degree列。
15、查詢所有學(xué)生的Sno、Cname和Degree列。
16、查詢所有學(xué)生的Sname、Cname和Degree列。
17、?查詢“95033”班學(xué)生的平均分。
18、?假設(shè)使用如下命令建立了一個grade表:
create?table?grade(low??int(3),upp??int(3),rank??char(1))
insert?into?grade?values(90,100,’A’)
insert?into?grade?values(80,89,’B’)
insert?into?grade?values(70,79,’C’)
insert?into?grade?values(60,69,’D’)
insert?into?grade?values(0,59,’E’)
現(xiàn)查詢所有同學(xué)的Sno、Cno和rank列。
19、??查詢選修“3-105”課程的成績高于“109”號同學(xué)成績的所有同學(xué)的記錄。
20、查詢score中選學(xué)多門課程的同學(xué)中分?jǐn)?shù)為非最高分成績的記錄。
21、?查詢成績高于學(xué)號為“109”、課程號為“3-105”的成績的所有記錄。
22、查詢和學(xué)號為108的同學(xué)同年出生的所有學(xué)生的Sno、Sname和Sbirthday列。
23、查詢“張旭“教師任課的學(xué)生成績。
24、查詢選修某課程的同學(xué)人數(shù)多于5人的教師姓名。
25、查詢95033班和95031班全體學(xué)生的記錄。
26、??查詢存在有85分以上成績的課程Cno.
27、查詢出“計算機(jī)系“教師所教課程的成績表。
28、查詢“計算機(jī)系”與“電子工程系“不同職稱的教師的Tname和Prof。
29、查詢選修編號為“3-105“課程且成績至少高于選修編號為“3-245”的同學(xué)的Cno、Sno和Degree,并按Degree從高到低次序排序。
30、查詢選修編號為“3-105”且成績高于選修編號為“3-245”課程的同學(xué)的Cno、Sno和Degree.
31、?查詢所有教師和同學(xué)的name、sex和birthday.
32、查詢所有“女”教師和“女”同學(xué)的name、sex和birthday.
33、?查詢成績比該課程平均成績低的同學(xué)的成績表。
34、?查詢所有任課教師的Tname和Depart.
35?、?查詢所有未講課的教師的Tname和Depart.?
36、查詢至少有2名男生的班號。
37、查詢Student表中不姓“王”的同學(xué)記錄。
38、查詢Student表中每個學(xué)生的姓名和年齡。
39、查詢Student表中最大和最小的Sbirthday日期值。
40、以班號和年齡從大到小的順序查詢Student表中的全部記錄。
41、查詢“男”教師及其所上的課程。
42、查詢最高分同學(xué)的Sno、Cno和Degree列。
43、查詢和“李軍”同性別的所有同學(xué)的Sname.
44、查詢和“李軍”同性別并同班的同學(xué)Sname.
45、查詢所有選修“計算機(jī)導(dǎo)論”課程的“男”同學(xué)的成績表。