《MySQL数据库应用》实验指导
实验八存储过程、存储函数和触发器
一、实验目的
1、掌握存储过程创建和调用的方法;
2、掌握存储函数创建和调用的方法;
3、掌握游标的使用方法;
4、掌握触发器的使用方法;
5、掌握事件的创建和使用方法。
二、实验学时
2学时
三、实验类型
验证性
四、实验需求
1、硬件
每位学生配备计算机一台:Pentium III以上处理器,2G或以上内存,2G或以上硬盘空间。
2、软件
Windows操作系统,安装MySQL Community Server软件。
3、网络
局域网环境。
4、工具
无。
五、实验理论与预备知识
1、了解存储过程中允许sql语句类型和参数的定义方法;
语法格式:
CREATE PROCEDURE存储过程名([过程参数...])
[特征...]存储过程体
2、了解存储过程的调用方法;
语法格式:
CALL存储过程名([参数...]
3、了解存储函数的定义和调用方法;
语法格式:
CREATE FUNCTION存储过程名([参数...])
RETURNS type
[特征...]存储函数体
存储函数的调用:
SELECT存储函数名([参数[,...]])
4、了解触发器的作用和使用方法;
语法格式:
CREATE TRIGGER触发器名触发时刻触发事件
ON表名FOR EACH ROW触发器动作
5、了解游标的使用方法。
语法格式:
声明游标DECLARE游标名CURSOR FOR select语句
mysql存储过程使用打开游标OPEN游标名
读取数据FETCH游标名INTO变量名...
关闭游标CLOSE游标名
六、实验内容与结果
以数据库user_db及数据表student、teacher、class、course、sc为基础(数据表及相关表数据来源于实验三),请将实现功能的SQL语句填写到实验报告册;
1、创建user_db数据库的存储过程,判断两个输入的参数哪一个更大,并调用这个存储过程。
2、在user_db数据库中的sc表中增加一列学分credit,然后创建一个存储过程,有两个输入参数:stu_id和cou_id,要求当某学生某门课程的成绩小于60分时将其学分修改为零,大于等于60分时将学分修改为此课程的学分,并调用这个存储过程。
3、创建一个存储函数来删除sc表中有,但student表中不存在的学号。如果调用存储函数时,参数中的学号在student表中不存在,那么将删除sc表中所有与该学号相关的行,之后返回1。如果学号在student中存在则直接返回零,并调用这个存储函数。
4、创建一个表table1,其中只有一列a。在表上创建一个触发器,每次插入操作时,将用户变量str的值设为“trigger is working”。
5、创建一个存储过程,使用游标计算student表中行的数目。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论