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的学生的姓名、课程名称、分数。

  1. 调用存储过程stu_grade。

3. 使用studentsdb数据库中的student_info表、curriculum表、grade表。

(1)创建存储过程stu_name,当任意输入一个学生的姓名时,查看其课程的最高分、最低分、平均分。

(2)调用存储过程stu_name。

  1. 删除存储过程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,通过游标统计指定课程的平均分。

  1. 执行存储函数avg_func,查看“C语言程序设计”课程平均分。
  2. 删除存储函数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的学生的姓名、课程名称、分数。

  1. 2调用存储过程stu_grade。

3. 使用studentsdb数据库中的student_info表、curriculum表、grade表。

(1)创建存储过程stu_name,当任意输入一个学生的姓名时,查看其课程的最高分、最低分、平均分。

(2)调用存储过程stu_name。

  1. 删除存储过程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,通过游标统计指定课程的平均分。

  1. 2执行存储函数avg_func,查看“C语言程序设计”课程平均分。

  

  1. 3删除存储函数avg_func。

五、理解及感悟

通过本次实验,让我对于存储过程和存储函数的创建、调用和删除有了进一步的了解。同时对与结合游标的运用也有了更加深刻的认识。

  • 25
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
存储过程存储函数MySQL数据库中非常重要的部分,它们可以简化复杂的操作,提高数据库的性能,并且可以重复使用。存储过程是一组预编译的SQL语句,它们可以在数据库中进行多次调用,从而减少了网络传输时间。而存储函数则是可以在SQL语句中调用的一段特定的代码,它们能够接收参数并返回一个值。 在第章的实验指导中,我们将学习如何创建存储过程存储函数,以及它们的使用方法。首先,我们会学习存储过程的创建和调用,包括输入参数、输出参数和INOUT参数的使用。然后我们会学习如何在存储过程中使用流程控制语句,比如IF语句、LOOP语句和WHILE语句。接下来,我们将了解存储函数的创建和调用,以及如何在函数中使用RETURN语句返回一个值。 在实验中,我们会通过实际的案例演示如何应用存储过程存储函数来解决实际的问题,比如如何通过存储过程来简化数据的查询和更新操作,如何通过存储函数来计算某些复杂的数学运算等等。最后,我们还会学习如何管理和维护存储过程存储函数,包括如何查看已有的存储过程存储函数,如何修改它们以及如何删除它们。 通过完成这些实验,我们将能够掌握存储过程存储函数的基本原理和使用方法,从而更好地应用它们来提高数据库的性能和简化开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值