資料庫練習題

2021-08-18 02:49:47 字數 4291 閱讀 8458

一、          設有一資料庫,包括四個表:學生表(student)、課程表(course)、成績表(score)以及教師資訊表(teacher)。四個表的結構分別如表1-1的表(一)~表(四)所示,資料如表1-2的表(一)~表(四)所示。用sql語句建立四個表並完成相關題目。

表1-1資料庫的表結構 

表(一)student (學生表)                         

屬性名資料型別

可否為空

含 義sno

char(3)

否學號(主碼)

sname

char(8)

否學生姓名

s***

char(2)

否學生性別

sbirthday

datetime

可學生出生年月

class

char(5)

可學生所在班級

表(二)course(課程表)

屬性名資料型別

可否為空

含 義cno

char(5)

否課程號(主碼)

cname

varchar(10)

否課程名稱

tnochar(3)

否教工編號(外碼)

表(三)score(成績表)

屬性名資料型別

可否為空

含 義sno

char(3)

否學號(外碼)

cnochar(5)

否課程號(外碼)

degree

decimal(4,1)可成績

主碼:sno+ cno

表(四)teacher(教師表)

屬性名資料型別

可否為空

含 義tno

char(3)

否教工編號(主碼)

tname

char(4)

否教工姓名

t***

char(2)

否教工性別

tbirthday

datetime

可教工出生年月

prof

char(6)可職稱

depart

varchar(10)

否教工所在部門

表1-2資料庫中的資料

表(一)student

snosname

s***

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

cnocname

tno3-105

計算機導論

8253-245

作業系統

8046-166

數位電路

8569-888

高等數學

831表(三)score

snocno

degree

1033-245

86105

3-245

75109

3-245

68103

3-105

92105

3-105

88109

3-105

76101

3-105

64107

3-105

91108

3-105

78101

6-166

85107

6-166

79108

6-166

81表(四)teacher

tnotname

t***

tbirthday

prof

depart

804李誠

男1958-12-02

副教授計算機系

856張旭

男1969-03-12

講師電子工程系

825王萍

女1972-05-05

助教計算機系

831劉冰

女1977-08-14

助教電子工程系

1、 查詢student表中的所有記錄的sname、s***和class列。

2、 查詢教師所有的單位即不重複的depart列。

3、 查詢student表的所有記錄。

4、 查詢score表中成績在60到80之間的所有記錄。

5、 查詢score表中成績為85,86或88的記錄。

6、 查詢student表中「95031」班或性別為「女」的同學記錄。

7、 以class降序查詢student表的所有記錄。

8、 以cno公升序、degree降序查詢score表的所有記錄。

9、 查詢「95031」班的學生人數。

10、 查詢score表中的最高分的學生學號和課程號。(子查詢或者排序)

11、 查詢每門課的平均成績。

12、查詢score表中至少有5名學生選修的並以3開頭的課程的平均分數。

13、查詢分數大於70,小於90的sno列。

14、查詢所有學生的sname、cno和degree列。

15、查詢所有學生的sno、cname和degree列。

16、查詢所有學生的sname、cname和degree列。

17、 查詢「95033」班學生的平均分。

18、 假設使用如下命令建立了乙個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』)

現查詢所有同學的sno、cno和rank列。

19、  查詢選修「3-105」課程的成績高於「109」號同學成績的所有同學的記錄。

20、查詢score中選學多門課程的同學中分數為非最高分成績的記錄。

21、 查詢成績高於學號為「109」、課程號為「3-105」的成績的所有記錄。

22、查詢和學號為108的同學同年出生的所有學生的sno、sname和sbirthday列。

23、查詢「張旭「教師任課的學生成績。

24、查詢選修某課程的同學人數多於5人的教師姓名。

25、查詢95033班和95031班全體學生的記錄。

26、  查詢存在有85分以上成績的課程cno.

27、查詢出「計算機系「教師所教課程的成績表。

28、查詢「計算機系」與「電子工程系「不同職稱的教師的tname和prof。

29、查詢選修編號為「3-105「課程且成績至少高於選修編號為「3-245」的同學的cno、sno和degree,並按degree從高到低次序排序。

30、查詢選修編號為「3-105」且成績高於選修編號為「3-245」課程的同學的cno、sno和degree.

31、 查詢所有教師和同學的name、***和birthday.

32、查詢所有「女」教師和「女」同學的name、***和birthday.

33、 查詢成績比該課程平均成績低的同學的成績表。

34、 查詢所有任課教師的tname和depart.

35 、 查詢所有未講課的教師的tname和depart. 

36、查詢至少有2名男生的班號。

37、查詢student表中不姓「王」的同學記錄。

38、查詢student表中每個學生的姓名和年齡。

39、查詢student表中最大和最小的sbirthday日期值。

40、以班號和年齡從大到小的順序查詢student表中的全部記錄。

41、查詢「男」教師及其所上的課程。

42、查詢最高分同學的sno、cno和degree列。

43、查詢和「李軍」同性別的所有同學的sname.

44、查詢和「李軍」同性別並同班的同學sname.

45、查詢所有選修「計算機導論」課程的「男」同學的成績表。

資料庫練習題

1 檢視原始資料庫information schema中的表,並顯示出views表的字段結構屬性資訊 show databases use information schema desc views 2 建立乙個offcn資料庫,並建立乙個students表,欄位為id,name,age,phone...

資料庫練習題一

有關聯式資料庫 職工關係 employee 職工號eno,職工名ename 工作關係 works 職工號eno,公司號cno,工資wage 公司關係 company 公司號cno,公司名cname 假設職工可以在多個公司兼職,請用關係代數表示式寫出至少在公司號為 c2 和 c5 公司兼職的職工名。1...

資料庫練習題5

1 事務的原子性是指 a 事務中包括的所有操作要麼都做,要麼都不做 b 事務一旦提交,對資料庫的改變是永久的 c 乙個事務內部的操作及使用的資料對併發的其他事務是隔離的 d 事務必須是使資料庫從乙個一致性狀態變到另乙個一致性狀態 2 事務的一致性是指 a 事務中包括的所有操作要麼都做,要麼都不做 b...