给定的学生选课数据库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 ;
举一反三
- 给定的学生选课数据库xsxk中有学生表、课程表和选课表: 学生(学号,姓名,出生日期,学院名称) 课程(课程名称,课程学分) 选课(课程名称,学号,成绩) 上述数据库及数据表已经创建,请按要求完成以下操作。 使用SQL命令在选课表上根据学号建立一个索引“index_选课学号” 。
- 【单选题】若有“学生”、“课程”、“选课”三张表,其关系模式分别为:学生 ( 学号 , 姓名 , 性别 , 出生日期 , 班级 ) ,课程 ( 课程号 , 课程名 , 学分 ) ,选课 ( 学号 , 课程号 , 成绩 ) ,下列哪个语句可以实现查询学生的学号和姓名、所选课程的课程号和课程名以及成绩的功能? A. SELECT 学号 , 姓名 , 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 B. SELECT 学号 , 姓名 , 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 WHERE 学生 . 学号 = 选课 . 学号 AND 选课 . 课程号 = 课程 . 课程号 C. SELECT 学生 . 学号 , 姓名 , 课程 . 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 WHERE 学生 . 学号 = 选课 . 学号 , 选课 . 课程号 = 课程 . 课程号 D. SELECT 学生 . 学号 , 姓名 , 课程 . 课程号 , 课程名 , 成绩 FROM 学生 , 课程 , 选课 WHERE 学生 . 学号 = 选课 . 学号 AND 选课 . 课程号 = 课程 . 课程号
- 对于学生(学号、姓名、性别)、课程(课程编号、课程名称、学分、授课老师)、选课(学号、课程编号、成绩)三个基本表,哪些能体现参照完整性? A: 学生(学号),课程(课程编号) B: 学生(学号),选课(学号) C: 课程(课程编号),选课(课程编号) D: 学生(姓名),选课(成绩)
- 【单选题】学生(学号,姓名,性别) 课程(课程号,课程名) 选课(课程号,学号,成绩) 查询每位学生所有课程的成绩: A. SELECT 姓名,课程名,成绩 FROM 学生,课程,选课 B. SELECT 姓名,课程名,成绩 FROM 学生 JOIN 课程 JOIN 选课 C. SELECT 姓名,课程名,成绩 FROM 学生 , 课程 , 选课 WHERE 学生.学号 =选课.学号 and 课程.课程号 = 选课.课程号 D. SELECT 姓名,课程名,成绩 FROM 学生 JOIN 课程 JOIN 选课 WHERE 学生.学号 =选课.学号 and 课程.课程号 = 选课.课程号
- 【单选题】设有学生(学号,姓名,性别,出生日期)和选课(学号,课程号,成绩)两个关系,查询选修课程号为"101"课程得分最高的同学,正确的SQL语句是____________。 A. SELECT 学生.学号, 姓名 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号="101") B. SELECT 学生.学号, 姓名 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课程号="101" AND 成绩 >=ALL(SELECT 成绩 FROM 选课) C. SELECT 学生.学号, 姓名 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课程号="101" AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号 D. SELECT 学生.学号, 姓名 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 成绩>=ANY(SELECT 成绩 FROM 选课 WHERE 课程号="101")