数据库原理及应用(第3版) - 全部习题new

即:

RANGE SC SCX

GET W(S.SNO):?CX?SCX (SCX.SNO≠SNO ∨ SCX.CNO≠CX.CNO)

全称改存在为:

RANGE SC SCX

C CX

GET W(S.SNO):?CX﹁(?SCX(SCX.SNO=SNO∧CX.CNO=SCX.CNO)) GET W(S.SNO):﹁?CX﹁(﹁(?SCX(SCX.SNO=SNO∧CX.CNO=SCX.CNO)))

GET W(S.SNO):﹁?CX(?SCX(SCX.SNO=SNO∧CX.CNO=SCX.CNO))

SQL命令见后

(11) 在关系C中增添一门新课

MOVE 'C9' TO W.CNO

MOVE '计算机系统结构' TO W.CN MOVE 'C4' TO W.CPNO PUT W(C)

(12) 学号为S17的学生因故退学请在S与SC中将其除名。

Hold W(SC):SNO=’S17’ DELETE W

Hold W(S):SNO=’S17’

29

数据库原理及应用 DELETE W

(13) 将关系S中学生S6的年龄改为22岁(只需ALPHA操作)。

Hold W(SNO,AGE):SNO=’S6’ MOVE 22 TO W.AGE UPDATE W

(14) 将关系S中学生的年龄均增加1岁(只需ALPHA操作)。

Hold W(SNO,AGE) MOVE W.AGE+1 TO W.AGE UPDATE W

30

写出SQL 命令(非本章要求):

9、设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号SNO,姓名SN,所在系DEPT,年龄AGE)、课程C(课程号CNO,课程名CN,先修课号CPNO)、SC(学号SNO,课程号CNO,成绩G)。

请用关系代数与ALPHA语言分别写出下列查询: (1) 检索学生的所有情况。 S SSCC

GET W(S)

GET W(S,SC,C): S.SNO=SC.SNO ∧ SC.CNO =C.CNO

SELECT * FROM S

(2) 检索学生年龄大于等于20岁的学生姓名。 πSN(σAGE>=20(S))

GET W(S.SN): (S.AGE>=20)

SELECT SN FROM S

WHERE S.AGE>=20

(3) 检索先修课号为C2的课程号。 πCNO(σCPNO=?C2?(C))

GET W(C.CNO): (C.CPNO=’C2’)

SELECT CNO FROM C

WHERE C.CPNO=’C2’

31

数据库原理及应用

(4) 检索选修了课程号C1成绩为A的所有学生姓名。 πSN(σCNO=?C1?∧SCORE=?A?(SCC))

RANGE SC SCX

GET W(S.SN): ?SCX (SCX.SNO=S.SNO ∧ SCX.CNO=’C1’ ∧ SCX.SCORE=’A’)

SELECT SN FROM S,SC

WHERE S.SNO=SC.SNO AND SC.CNO=’C1’ AND SC.SCORE=’A’

(5) 检索学号为S1的学生修读的所有课程名及先修课号。 πCN,CPNO (σSNO=?S1?(SCS))

RANGE SC SCX

GET W(C.CN,C.CPNO): ?SCX (SCX.CNO=C.CNO ∧ SCX.SNO=’S1’)

SELECT C.CN,C.CPNO FROM C,SC

WHERE C.CNO=SC.CNO AND SC.SNO=’S1’

(6) 检索年龄为23岁的学生所修读的课程名。

πCN (σAGE=23(SSCC))

RANGE S SX SC SCX

GET W(C.CN): ?SX?SCX (SX.SNO=SCX.SNO ∧ SCX.CNO=C.CNO∧ SX.AGE=23)

32

联系客服:779662525#qq.com(#替换为@)