Lab3 存储过程与触发器
实验三 存储过程与触发器实验目的:
学习SQL语言进行编程的基本方法与技术,能够编写存储过程、触发器解决数据库需要处理的复杂问题。
实验内容:
1、 设计一个存储过程或者自定义函数,练习存储过程的设计方法。
2、 设计触发器,理解触发器的工作原理与设计方法。
实验过程及要求:
1、 编写存储过程,传入学号,查询该同学所有选修记录,结果显示信息项包括学号、姓名、班级名称、课程名、学分、成绩.
2、撰写存储过程,完成以下操作代码写在空白处。
(1)插入数据学院2020级计算机科学技术1班、计算机科学技术2班记录。
(2)针对2个班级,产生学生的记录插入到学生信息表中,每班学生数30人。
3、编写触发器:当在学生表中更新(增、删、改)学生记录时,计算学生班级总人数,并更新班级表中对应的记录中
实验具体操作
1、 编写存储过程,传入学号,查询该同学所有选修记录,结果显示信息项包括学号、姓名、班级名称、课程名、学分、成绩.
DROP PROCEDURE if exists GetStudentCourseRecords;
DELIMITER //
CREATE PROCEDURE GetStudentCourseRecords(IN student_id VARCHAR(9))
BEGIN
SELECT s.Sid, s.Sname, g.gname, c.Cname, c.credit, sc.score1,sc.score2
FROM ustudent s
INNER JOIN ugrade g ON s.gid = g.gid
INNER JOIN usc sc ON s.Sid = sc.sid
INNER JOIN ucourse c ON sc.cid = c.Cid
WHERE s.Sid = student_id;
END //
DELIMITER ;
call GetStudentCourseRecords('012005004');
2、撰写存储过程,完成以下操作代码写在空白处。
1)插入数据学院2020级计算机科学技术1班、计算机科学技术2班记录。
2)针对2个班级,产生学生的记录插入到学生信息表中,每班学生数30人。
DELIMITER //DROP PROCEDURE if exists InsertClassData;CREATE PROCEDURE InsertClassData()BEGIN DECLARE i INT DEFAULT 1; DECLARE j INT DEFAULT 1; DECLARE random_sex varchar(5); -- 1) 插入数据学院2020级计算机科学技术1班、计算机科学技术2班记录 WHILE i
页:
[1]