【正确答案】CREATE TABLE学生选课(
学号CHAR(7) NOT NULL,
课程号INT NOT NULL,
成绩TINYINT CHECK(成绩>=0 AND 成绩<=100),
PRIMARY KEY(学号,课程号),
FOREIGN KEY(学号) REFERENCES学生(学号),
FOREIGN KEY(课程号) REFERENCES课程(课程号)
)
【答案解析】[解析] 对各列分析如下。
(1)学号:与学生表中学号保持一致,数据类型为char,长度为6,需要有非空约束。
(2)课程号:与课程表中课程号保持一致,数据类型为int,需要有非空约束。
(3)成绩:整型,取值在0~100之间,可使用tinyint型;要求取值范围为0~100,需要定义检查约束。
(4)主码:由于关系表主码为属性组,因此需要定义表级的主码约束,将学号和课程号定义为主码。
(5)外码:需要定义两个表级的外码约束。第1个外码约束规定学号为外码,被参照关系(父表)为学生关系,被参照属性为学号,它是被参照关系学生的主码;第二个外码约束规定课程号为外码,被参照关系为课程关系,被参照属性为课程号,它是被参照关系课程的主码。