某学校学籍科管理中心需建立一个学生选修课数据库,该数据库中需要存储和管理下列信息: 学生:学号,姓名,性别,年龄 课程:课程号,课程名,学时 以上数据存在的约束条件是: 一名学生可以选修多门课程,一门课程可以有多名学生,并且选修课要有成绩的登记。
问答题 ①画出该关系的ER图
【正确答案】正确答案:①建立ER图
【答案解析】
问答题 ②用SQL语句创建ER关系图中的所有涉及的表
【正确答案】正确答案:②CREATE TABLE学生( 学号varchar(10) PRIMARY KEY, 姓名varchar(20) NOT NULL, 性别char(2) CHECK(性别IN('男','女')), 年龄int) CREATE TABLE课程( 课程号varchar(10) PRIMARY KEY, 课程号varchar(20) NOT NULL, 学时int )
【答案解析】解析:由题可知一名学生可以选修多门课程,一门课程可以有多名学生,并且选修课要有成绩的登记,即课程和学生的关系是多对多的关系。
问答题 某数据库中有关系Student(Sno,Sname,Ssex,Sage,Sdept),各属性分别表示学号,姓名,性别,年龄以及所在的系;Course(Cno,Cname,Ccredit)属性分别表示课程号,课程名,学分;SC(Sno, Cno,Grade)为学生选课表,各属性分别表示为学号,课程号和分数;完成下列的SQL语句:
【正确答案】正确答案:
【答案解析】
问答题 ①查询其他系中比计算机科学(CS)某一学生年龄小的学生姓名和年龄。
【正确答案】正确答案:①SELECT Sname,Sage FROM Student WHERE Sage<ANY(SELECT Sage FROM Student WHERE Sdept='CS') AND Sdept<>'CS'
【答案解析】
问答题 ②建立信息系(IS)选修了1号课程的学生的视图IS_S1
【正确答案】正确答案:②CREATE VIEW IS_S1(Sno,Sname,Grade) AS SELECT Student Sno,Sname,Grade FROM Student,SC WHERE Sdept='IS'AND Student.Sno=SC Sno AND SC.Cno='1';
【答案解析】
问答题 ③定义一个AFTER的行级触发器Print_f,当往成绩表(SC)中插入的成绩小于60就打印不及格
【正确答案】正确答案:③CREATE TRIGGER Print_f AFTER INSERT ON Student FOR EACH ROW AS BEGIN IF(new.Grade<60) THEN PRINT'不及格' END IF END;
【答案解析】解析:创建视图用CTREATE VIEW,而创建触发器是用CREATE TRIGGER,触发器分为行级触发器和语句级触发器,FOR EACH ROW是行级触发器。