MYSQL存储过程和存储函数 |
您所在的位置:网站首页 › 函数使用过程分几步 › MYSQL存储过程和存储函数 |
Mysql数据库实验及练习题相关
MySQL 数据库和表的管理-数据库实验一 MySQL连接查询、索引、视图-数据库实验二、实验三 MySQL约束、触发器-数据库实验四 MYSQL存储过程和存储函数-数据库实验五 MySQL批量随机生成name、TEL、idNumber MYSQL数据库的安全管理-数据库实验六 MYSQL数据库安全性练习题 MYSQL数据库的备份与恢复-数据库实验七 MYSQL数据库设计题-窗帘店 一、实验目的 1. 掌握通过SQL语句CREATE PROCEDURE创建存储过程的方法。 2. 掌握使用SQL语句CALL调用存储过程的方法。 3. 掌握使用SQL语句ALTER PROCEDURE修改存储过程的方法。 4. 掌握使用SQL语句DROP PROCEDURE删除存储过程的方法。 5. 掌握使用CREATE FUNCTION创建存储函数的方法。 6. 掌握使用SQL语句ALTER FUNCTION修改存储函数的方法。 7. 掌握使用SQL语句DROP FUNCTION删除存储函数的方法。 二、实验内容 1. 输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名的学生的各科成绩。 DELIMITER @@ CREATE PROCEDURE stu_info(IN name CHAR(8)) BEGIN SELECT s.学号,姓名,课程编号,分数 FROM student_info s,grade g WHERE s.学号=g.学号 and 姓名=name; END @@ 使用CALL命令执行存储过程stu_info,其参数值为'张青平'。 DELIMITER ; CALL stu_info('张青平'); 2. 使用studentsdb数据库中的student_info表、curriculum表、grade表。 (1)创建一个存储过程stu_grade,查询学号为0001的学生的姓名、课程名称、分数。 调用存储过程stu_grade。3. 使用studentsdb数据库中的student_info表、curriculum表、grade表。 (1)创建存储过程stu_name,当任意输入一个学生的姓名时,查看其课程的最高分、最低分、平均分。 (2)调用存储过程stu_name。 删除存储过程stu_name。4. 使用studentsdb数据库中的grade表。 (1)创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生选修课程的门数。 (2)执行存储过程stu_g_r,输入学号0002。 (3)显示0002号学生的选课门数。 5. 使用studentsdb数据库中的curriculum表、grade表。 (1)创建一个存储函数num_func,统计指定课程名称的选课人数。 (2)执行存储函数num_func,查看“C语言程序设计”选课人数。 6. 使用studentsdb数据库中的curriculum表、grade表。 (1)创建一个存储函数avg_func,通过游标统计指定课程的平均分。 执行存储函数avg_func,查看“C语言程序设计”课程平均分。删除存储函数avg_func。三、实验思考 1. 存储函数和存储过程如何将运算结果返回给外界? 存储函数通过RETURN将RETURNS声明的数据类型返回,只能返回值或者对象; 存储过程则可以返回传入的OUT或者INOUT类型的参数。 2.存储函数有OUT参数、INOUT参数吗? 没有。 3. 使用游标的步骤。 声明游标、打开游标、提取数据、关闭游标。 DECLARE 游标名字 CURSOR FOR SELECT 语句; OPEN 游标名; FETCH 游标名 INTO 变量名1[, 变量名2……]; CLOSE 游标名; 四、实验数据 1. 输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名的学生的各科成绩。 DELIMITER @@ CREATE PROCEDURE stu_info(IN name CHAR(8)) BEGIN SELECT s.学号,姓名,课程编号,分数 FROM student_info s,grade g WHERE s.学号=g.学号 and 姓名=name; END @@ 使用CALL命令执行存储过程stu_info,其参数值为'张青平'。 DELIMITER ; CALL stu_info('张青平'); 2. 使用studentsdb数据库中的student_info表、curriculum表、grade表。 (1)创建一个存储过程stu_grade,查询学号为0001的学生的姓名、课程名称、分数。 3. 使用studentsdb数据库中的student_info表、curriculum表、grade表。 (1)创建存储过程stu_name,当任意输入一个学生的姓名时,查看其课程的最高分、最低分、平均分。 (2)调用存储过程stu_name。 4. 使用studentsdb数据库中的grade表。 (1)创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生选修课程的门数。 (2)执行存储过程stu_g_r,输入学号0002。 (3)显示0002号学生的选课门数。 5. 使用studentsdb数据库中的curriculum表、grade表。 (1)创建一个存储函数num_func,统计指定课程名称的选课人数。 (2)执行存储函数num_func,查看“C语言程序设计”选课人数。
6. 使用studentsdb数据库中的curriculum表、grade表。 (1)创建一个存储函数avg_func,通过游标统计指定课程的平均分。
五、理解及感悟 通过本次实验,让我对于存储过程和存储函数的创建、调用和删除有了进一步的了解。同时对与结合游标的运用也有了更加深刻的认识。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |