问题 问答题

某数据库中有关系Student(Sno,Sname,Ssex,Sage,Sdept),各属性分别表示学号,姓名,性别,年龄以及所在的系;Course(Cno,Cname,Credit)属性分别表示课程号,课程名,学分;SC(Sno,Cno,Grade)为学生选课表,各属性分别表示为学号,课程号和分数;完成下列的SQL语句:
①查询其他系中比计算机科学(CS)某一学生年龄小的学生姓名和年龄。
②建立信息系(IS)选修了1号课程的学生的视图IS_S1
③定义一个AFTER的行级触发器Print_f,当往成绩表(SC)中插入的成绩小于60就打印不及格

答案

参考答案:①SELECT Sname,Sage
FROM Student
WHERE Sage<ANY(SELECT Sage
FROM Student
WHERE Sdept=’CS’)
AND Sdept<>’CS’
②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’;
③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是行级触发器。

问答题 简答题
名词解释