翼度科技»论坛 编程开发 mysql 查看内容

Lab3 存储过程与触发器

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
          实验三 存储过程与触发器

实验目的:

学习SQL语言进行编程的基本方法与技术,能够编写存储过程、触发器解决数据库需要处理的复杂问题。

实验内容:

1、        设计一个存储过程或者自定义函数,练习存储过程的设计方法。
2、        设计触发器,理解触发器的工作原理与设计方法。

实验过程及要求:

1、        编写存储过程,传入学号,查询该同学所有选修记录,结果显示信息项包括学号、姓名、班级名称、课程名、学分、成绩.
2、撰写存储过程,完成以下操作代码写在空白处。
(1)插入数据学院2020级计算机科学技术1班、计算机科学技术2班记录。
(2)针对2个班级,产生学生的记录插入到学生信息表中,每班学生数30人。
3、编写触发器:当在学生表中更新(增、删、改)学生记录时,计算学生班级总人数,并更新班级表中对应的记录中

实验具体操作


1、        编写存储过程,传入学号,查询该同学所有选修记录,结果显示信息项包括学号、姓名、班级名称、课程名、学分、成绩.
  1. DROP PROCEDURE if exists GetStudentCourseRecords;
  2. DELIMITER //
  3. CREATE PROCEDURE GetStudentCourseRecords(IN student_id VARCHAR(9))
  4. BEGIN
  5.     SELECT s.Sid, s.Sname, g.gname, c.Cname, c.credit, sc.score1,sc.score2
  6.     FROM ustudent s
  7.     INNER JOIN ugrade g ON s.gid = g.gid
  8.     INNER JOIN usc sc ON s.Sid = sc.sid
  9.     INNER JOIN ucourse c ON sc.cid = c.Cid
  10.     WHERE s.Sid = student_id;
  11. END //
  12. DELIMITER ;
  13. call GetStudentCourseRecords('012005004');
复制代码


2、撰写存储过程,完成以下操作代码写在空白处。
1)插入数据学院2020级计算机科学技术1班、计算机科学技术2班记录。
2)针对2个班级,产生学生的记录插入到学生信息表中,每班学生数30人。
[code]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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具