某学校学籍科管理中心需建立一个学生选修课数据库,该数据库中需要存储和管理下列信息: 学生:学号,姓名,性别,年龄 课程:课程号,课程名,学时 以上数据存在的约束条件是: 一名学生可以选修多门课程,一门课程可以有多名学生,并且选修课要有成绩的登记。
问答题
①画出该关系的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是行级触发器。
提交答案
关闭