在学生课程管理数据库中创建一触发器,当向学生选课表插入记录时,检查该记录的学号在学生表中是否存在,检查该记录的课程号在课程表中是否存在,及选课成绩是否在0到100范围,若有一项为否,则不允许插入
举一反三
- 设要创建学生选课数据库,库中包括学生、课程和选课3个表,其表结构如下。 学生(学号,姓名,性别,年龄,所在系) 课程(课程号,课程名,先行课) 选课(学号,课程号,成绩) 用SQL语句完成下列操作。 (1)创建学生选课库。 (2)创建学生、课程和选课表,其中学生中“性别”的域为“男”或“女”,默认值为“男”。
- 给定的学生选课数据库xsxk中有学生表、课程表和选课表: 学生(学号,姓名,出生日期,学院名称) 课程(课程名称,课程学分) 选课(课程名称,学号,成绩) 上述数据库及数据表已经创建,请按要求完成以下操作。 设计一个名称为tr_选课的触发器,完成的功能是:当在选课表上插入一条记录之前,若该记录中的学号和课程名称在学生表和课程表中不存在,则在相关表中插入相应记录。 注意:在考生文件夹中的sj21.txt文件已给出部分程序,但程序不完整,请删除下划线,并在下划线处填上适当的内容,使程序补充完整,并按原文件名保存在考生文件夹下,否则没有成绩。 DELIMITER $$ CREATE TRIGGER tr_选课 ______ INSERT ON 选课 FOR EACH ROW BEGIN DECLARE sno,cno INT; SELECT COUNT(*) INTO sno FROM 学生 WHERE 学号=NEW.学号; SELECT COUNT(*) INTO cno FROM 课程 WHERE 课程名称=________________; IF(sno=0) THEN INSERT INTO 学生(学号) values(________________); END IF; IF(cno=0) THEN INSERT INTO 课程(课程名称) values(NEW.课程名称); END IF; END $$ DELIMITER ;
- 设有表示学生选课的三张表,学生表(学号,姓名,性别),课程表(课程号,课程名),选课成绩表(学号,课程号,成绩),则选课成绩表的关键字为( )。
- 设有表示学生选课的三张表,学生表(学号,姓名,性别),课程表(课程号,课程名),选课成绩表(学号, 课程号,成绩),则选课成绩表的关键字为(00a000a000a000a0)。
- 【单选题】若有“学生”、“课程”、“选课”三张表,其关系模式分别为:学生 ( 学号 , 姓名 , 性别 , 出生日期 , 班级 ) ,课程 ( 课程号 , 课程名 , 学分 ) ,选课 ( 学号 , 课程号 , 成绩 ) ,下列哪个语句可以实现查询学生的学号和姓名、所选课程的课程号和课程名以及成绩的功能? A. SELECT 学号 , 姓名 , 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 B. SELECT 学号 , 姓名 , 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 WHERE 学生 . 学号 = 选课 . 学号 AND 选课 . 课程号 = 课程 . 课程号 C. SELECT 学生 . 学号 , 姓名 , 课程 . 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 WHERE 学生 . 学号 = 选课 . 学号 , 选课 . 课程号 = 课程 . 课程号 D. SELECT 学生 . 学号 , 姓名 , 课程 . 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 WHERE 学生 . 学号 = 选课 . 学号 AND 选课 . 课程号 = 课程 . 课程号