《 MySQL数据库应用》实验指导/实验八:存储过程、函数和触发器 《 My SQL数据库应用》实验指导 实验八存储过程、存储函数和触发器 、实验目的 1、掌握存储过程创建和调用的方法; 2、掌握存储函数创建和调用的方法; 3、掌握游标的使用方法 4、掌握触发器的使用方法; 5、掌握事件的创建和使用方法。 二、实验学时 2学时 三、实验类型 验证性 四、实验需求 1、硬件 每位学生配备计算机一台: PentiumⅢl以上处理器,2G或以上内存,2G或以上硬盘空间 2、软件 Windows操作系统,安装 My SQL Community Server软件 3、网络 局域网环境。 4、工具 五、实验理论与预备知识 1、了解存储过程中允许sq语句类型和参数的定义方法; 语法格式: CREATE PROCEDURE存储过程名(过程参数) 「特征]存储过程体 2、了解存储过程的调用方法; 语法格式: CALL存储过程名(参数…] 3、了解存储函数的定义和调用方法; 管理科学与工程学科/共2页第1页
《MySQL 数据库应用》实验指导 / 实验八:存储过程、函数和触发器 1 管理科学与工程学科 / 共 2页,第 1页 《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、了解存储函数的定义和调用方法;
《 MySQL数据库应用》实验指导/实验八:存储过程、函数和触发器 2 语法格式: CREATE FUNCTION存储过程名([参数 RETURNS type 「特征]存储函数体 存储函数的调用: SELECT存储函数名(参数J) 4、了解触发器的作用和使用方法 语法格式 CREATE TRIGGER触发器名触发时刻触发事件 ON表名 FOR EACH ROW触发器动作 5、了解游标的使用方法。 语法格式 声明游标 DECLARE游标名 CURSOR FOR Select语句 打开游标OPEN游标名 读取数据 FETCH游标名INTO变量名 关闭游标 CLOSE游标名 六、实验内容与结果 以数据库 user db及数据表 student、 teacher、clas、 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、创建一个表 tablel,其中只有一列a。在表上创建一个触发器,每次插入操作时,将用户变 量str的值设为“ trigger is working” 5、创建一个存储过程,使用游标计算 student表中行的数目。 管理科学与工程学科/共2页第2页
《MySQL 数据库应用》实验指导 / 实验八:存储过程、函数和触发器 2 管理科学与工程学科 / 共 2页,第 2页 语法格式: CREATE FUNCTION 存储过程名 ([参数 ... ]) RETURNS type [特征 ...] 存储函数体 存储函数的调用: SELECT 存储函数名 ([参数[,...]]) 4、了解触发器的作用和使用方法; 语法格式: CREATE TRIGGER 触发器名 触发时刻 触发事件 ON 表名 FOR EACH ROW 触发器动作 5、了解游标的使用方法。 语法格式: 声明游标 DECLARE 游标名 CURSOR FOR select 语句 打开游标 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 表中行的数目