数据库:存储过程及触发器的实验报告

数据库:存储过程及触发器的实验报告实验目的:进一步了解关于存储过程和触发器的定义及实现实验名称:存储过程、触发器的定义以及验证实验内容:完成以下关于存储过程和触发器的定义以及验证

大家好,欢迎来到IT知识分享网。

实验目的:进一步了解关于存储过程和触发器的定义及实现

实验名称:存储过程、触发器的定义以及验证

实验内容:完成以下关于存储过程和触发器的定义以及验证。

1.[例7.50] 输入某个同学的学号,统计该同学的平均分。

CREATE PROCEDURE proStudentByNo1(sNo char(7)) BEGIN SELECT a.studentNo, studentName, avg(score) FROM Student a, Score b WHERE a.studentNo=b.studentNo AND a.studentNo=sNo GROUP BY a.studentNo, studentName; END

执行该存储过程:call proStudentByNo1(‘0’);

2.输入某个同学的学号,统计该同学的平均分,并返回该同学的姓名和平均分。

CREATE PROCEDURE proStudentByNo21(@sNo char(7), @sName varchar(20) OUTPUT, @avg numeric(5, 1) OUTPUT ) AS BEGIN SELECT @sName=studentName FROM Student WHERE studentNo=@sNo SELECT @avg=avg(score) FROM Score WHERE studentNo=@sNo GROUP BY studentNo END

执行存储过程proStudentByNo2 1

DECLARE @sNamevarchar(20), @avg numeric(5, 1)

EXECUTE proStudentByNo21 ‘0’, @sName OUTPUT, @avg OUTPUT

SELECT @sName, @avg

把以上SQLServer版本的存储过程改为MYSQL版本并运行

3. 创建触发器,当输入某个同学选课成绩时,如果他是少数民族人,其成绩自动加5分。

CREATE TRIGGER ScoreIns BEFORE INSERT ON Score FOR EACH ROW BEGIN UPDATE Student SET NEW.score=NEW.score+5 WHERE Student.studentNo=NEW.studentNo and Student.nation<>'汉族'; END

实验步骤:

首先连接名为scoredbd的数据库,然后新建查询,输入SQL语句,运行。

1. 输入学号为0,统计该同学的平均分。SQL语句及运行结果如下:

数据库:存储过程及触发器的实验报告

执行存储过程:

数据库:存储过程及触发器的实验报告

2、输入学号为0,统计该同学的平均分,并返回该同学的姓名和平均分。

数据库:存储过程及触发器的实验报告

数据库:存储过程及触发器的实验报告

3. 创建触发器,当输入某个同学选课成绩时,如果他是少数民族人,其成绩自动加5分。

数据库:存储过程及触发器的实验报告

(1)往Score表插入一条记录,要求studentNo值所对应学生在Student表的民族为’汉族’,查看Score表中刚才插入的记录的score值是否有变化。

数据库:存储过程及触发器的实验报告

数据库:存储过程及触发器的实验报告

数据库:存储过程及触发器的实验报告

(2)再往Score表插入一条记录,要求studentNo值所对应学生在Student表的民族为’蒙古族’,查看Score表中刚才插入的记录的score值是否有变化。

数据库:存储过程及触发器的实验报告

数据库:存储过程及触发器的实验报告

数据库:存储过程及触发器的实验报告

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/46451.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信