sql存储过程实例详解存储过程及触发器的实验报告sql编写存储过程和触发器实验




sql存储过程实例详解存储过程及触发器的实验报告sql编写存储过程和触发器实验

2022-07-21 2:24:25 网络知识 官方管理员

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

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

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

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

CREATEPROCEDUREproStudentByNo1(sNochar(7))BEGINSELECTa.studentNo,studentName,avg(score)FROMStudenta,ScorebWHEREa.studentNo=b.studentNoANDa.studentNo=sNoGROUPBYa.studentNo,studentName;END

执行该存储过程:callproStudentByNo1('0800001');

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

CREATEPROCEDUREproStudentByNo21(@sNochar(7),@sNamevarchar(20)OUTPUT,@avgnumeric(5,1)OUTPUT)ASBEGINSELECT@sName=studentNameFROMStudentWHEREstudentNo=@sNoSELECT@avg=avg(score)FROMScoreWHEREstudentNo=@sNoGROUPBYstudentNoEND

执行存储过程proStudentByNo21

DECLARE@sNamevarchar(20),@avgnumeric(5,1)

EXECUTEproStudentByNo21'0800001',@sNameOUTPUT,@avgOUTPUT

SELECT@sName,@avg

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

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

CREATETRIGGERScoreInsBEFOREINSERTONScoreFOREACHROWBEGINUPDATEStudentSETNEW.score=NEW.score+5WHEREStudent.studentNo=NEW.studentNoandStudent.nation<>'汉族';END

实验步骤:

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

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

sql存储过程实例详解(存储过程及触发器的实验报告)(1)

执行存储过程:

sql存储过程实例详解(存储过程及触发器的实验报告)(2)

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

sql存储过程实例详解(存储过程及触发器的实验报告)(3)

sql存储过程实例详解(存储过程及触发器的实验报告)(4)

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

sql存储过程实例详解(存储过程及触发器的实验报告)(5)

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

sql存储过程实例详解(存储过程及触发器的实验报告)(6)

sql存储过程实例详解(存储过程及触发器的实验报告)(7)

sql存储过程实例详解(存储过程及触发器的实验报告)(8)

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

sql存储过程实例详解(存储过程及触发器的实验报告)(9)

sql存储过程实例详解(存储过程及触发器的实验报告)(10)

sql存储过程实例详解(存储过程及触发器的实验报告)(11)

发表评论:

最近发表
网站分类
标签列表