33. (问答题) 设有一个关系数据库,有三个基本表,表的结构如下:
STUDENT(学号,姓名,年龄,性别,系名),其中学号,姓名,性别,系名的数据类型均为字符类型。年龄的数据类型为整型。
SC(学号,课程号,成绩):其中学号、课程号的数据类型为字符类型,成绩的数据类型为整型。
COURSE(课程号,课程名,学时数):其中课程号、课程名的数据类型的数据类型为字符类型;学时数的数据类型为整型。
1)请用关系代数查询信息系学生的学号、姓名、课程号和成绩。
2)指出以上各关系的键和外键。
3) 请用关系代数查询年龄在20以下同学的姓名,年龄。
4) 请用SQL语言检索创建STUDENT表,并定义出主键约束,学生性别缺省约束为:“男”
5 ) 请用SQL语言定义SC表,并定义外键约束
SC(学号,课程号,成绩):其中学号、课程号的数据类型为字符类型,成绩的数据类型为整型。
6) 查询“计算机原理”课程成绩小于60分的同学的学号和姓名。
7) 请创建年龄在20岁以下,计算机系男同学的视图。
8)将新同学,学号“200301009”,姓名:张苹,年龄:20,性别:女,系名:土木的信息插入到STUDENT关系中。
9) 删除选修“001”课程的选修信息。
(本题10.0分)

答案
标准答案:
1)π学号,姓名,课程号,成绩 (SC (σ系名=‘信息’STUDENT))
2)STUDENT:键:学号
SC:键:学号,课程号;外键:学号;课程号。
COURSE:键:课程号
3)π姓名,年龄 (σAGE《20 STUDENT)
4)CREATE TABLE STUDENT
( 学号 Char(8) PRIMARYKEY,
姓名 Varchar(10) NOT NULL,
年龄 integer NOT NULL,
性别 Char(2) Not null DEFAULT“男”,
系名 Varchar(20) NOT NULL)
5)CREATE TABLE SC
(学号 Char(8),
课程号 Char(8),
成绩 integer,
CONSTRAINT pk_sc_constr
PRIMARY KEY NONCLUSTERED (学号,课程号),
CONSTRAINT pub_sno_const
REFERENCES STUDENT (学号)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT pub_cno_const
REFERENCES course (课程号)
ON DELETE CASCADE
ON UPDATE CASCADE)
6)SELECT 学号,姓名
FROM STUDENT,SC
WHERE STUDENT.学号=SC.学号 AND SC.课程号=COURSE.课程号 AND
课程名=“计算机原理” AND
成绩〈60
7)CREATE VIEW 男同学
AS
SELECT *
FROM STUDENT
WHERE 年龄〈20 AND 系名=“计算机”
8)
INSERT INTO STUDENT
VALUES(“ 200301009”,“张苹”,20,“女”,“土木”)
9)DELETE FROM SC
WHERE 课程号=“001”