MySQL数据库存储过程

本文详细介绍了MySQL的存储过程,包括存储过程与函数的区别、自定义函数的语法及存储过程的创建、调用和使用。通过实例展示了如何创建存储过程,如何在过程中使用变量、流程控制语句如IF、CASE和LOOP,以及如何通过用户变量输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL存储过程

存储过程和函数都是事先预编译并保存在数据库中的特殊数据库对象,当需要时可以直接通过“存储过程名”或“函数名”调用执行,这样可以简化操作,同时提高执行的效率。

一、存储过程和函数的区别:
  1. 函数是在定义部分有RETURNS指定返回值类型,同时在函数体中必须使用RETURN语句返回结果;存储过程则通过输出或输入输出参数向外输出结果。
  2. 存储过程的参数有IN、OUT、INOUT作为指定参数的传递方向;而函数的参数通常是IN的方向,所以我们就省略不写。
  3. 函数可以包含在任意SQL语句中;而存储过程不行,是通过CALL语句来调用。
二、自定义函数:(了解一下)

语法:

DELIMITER $$
CREATE  FUNCTION  <函数名>  (参数名称  参数数据类型(长度,小数点位数))RETURNS 返回值的数据类型
BEGIN
   #函数的内容
END $$
DELIMITER ;

说明:

  1. DELEMITER叫做定界符,表示将原来语句结束的符号改为“//”或者“$$”函数结束后再将符号改回“;”
  2. 函数分为定义部分和函数体;
  3. 函数在定义部分有RETURNS指定返回值类型,同时在函数体中必须使用RETURN语句返回结果。
    举例:
    #1.创建一个定义的函数:问好的函数,可以从外界传入一个名字,最后实现输出“您好XXX”
DELIMITER $$
CREATE FUNCTION func_hrllo(name VARCHAR(10)) RETURNS VARCHAR(20)
BEGIN
RETURN CONCAT('您好:',name);
END $$
DELIMITER ;

#2.调用以上的自定义函数

SELECT func_hrllo('张三');
三、存储过程:

语法:

DELIMITER //
CREATE PROCEDURE 存储过程名(参数的传递方向 参数的名称 参数的数据类型)
BEGIN
  #存储过程体的内容部分
END //
DELIMITER ;

说明:
1)参数传递方向:IN(输入)、OUT(输出)、INOUT(输入输出)。
2)存储过程则通过输出或输入输出参数向外输出结果。

1.存储过程的入门案例:
  1. 存储过程的入门案例:满足条件的记录数统计:针对成绩表*/
    #1) 创建存储过程
DELIMITER //
CREATE PROCEDURE proc_score_count(OUT result INT(3))
BEGIN
SELECT COUNT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值