加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql中如何调用存储步骤

发布时间:2023-06-10 13:09:22 所属栏目:MySql教程 来源:
导读:这篇文章主要讲解了“mysql中如何调用存储过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中如何调用存储过程”吧!在mysql中,可

这篇文章主要讲解了“mysql中如何调用存储过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中如何调用存储过程”吧!

在mysql中,可以使用CALL语句来调用存储过程,该语句接收存储过程的名字以及需要传递给它的任意参数,语法为“CALL sp_name([parameter[...]]);”。

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

MySQL 中使用 CALL 语句来调用存储过程。调用存储过程后,数据库系统将执行存储过程中的 SQL 语句,然后将结果返回给输出值。

CALL 语句接收存储过程的名字以及需要传递给它的任意参数,基本语法形式如下:

CALL sp_name([parameter[...]]);

其中,sp_name 表示存储过程的名称,parameter 表示存储过程的参数。

示例1:

创建存储过程

创建名称为 ShowStuScore 的存储过程,存储过程的作用是从学生成绩信息表中查询学生的成绩信息

mysql> DELIMITER //

mysql> CREATE PROCEDURE ShowStuScore()

    -> BEGIN

    -> SELECT * FROM tb_students_score;

    -> END //

Query OK, 0 rows affected (0.09 sec)

结果显示 ShowStuScore 存储过程已经创建成功。

创建名称为 GetScoreByStu 的存储过程,输入参数是学生姓名。存储过程的作用是通过输入的学生姓名从学生成绩信息表中查询指定学生的成绩信息

mysql> DELIMITER //

mysql> CREATE PROCEDURE GetScoreByStu

    -> (IN name VARCHAR(30))

    -> BEGIN

    -> SELECT student_score FROM tb_students_score

    -> WHERE student_name=name;

    -> END //

Query OK, 0 rows affected (0.01 sec)

调用存储过程

调用名称为 ShowStuScore和GetScoreByStu的存储过程

mysql> DELIMITER ;

mysql> CALL ShowStuScore();

+--------------+---------------+

| student_name | student_score |

+--------------+---------------+

| Dany         |            90 |

| Green        |            99 |

| Henry        |            95 |

| Jane         |            98 |

| Jim          |            88 |

| John         |            94 |

| Lily         |           100 |

| Susan        |            96 |

| Thomas       |            93 |

| Tom          |            89 |

+--------------+---------------+

10 rows in set (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

mysql> CALL GetScoreByStu('Green');

+---------------+

| student_score |

+---------------+

|            99 |

+---------------+

1 row in set (0.03 sec)

Query OK, 0 rows affected (0.03 sec)

因为存储过程实际上也是一种函数,所以存储过程名后需要有( )符号,即使不传递参数也需要。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!