MYSQL学习笔记:关于MySQL存储过程(4)


MySQL学习:


MySQL存储过程


1.什么是存储过程?

简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合


2.为什么使用存储过程?
  1. 通过把处理封装在容易使用的单元中,简化复杂的操作。
  2. 批量处理,简化对变动的管理。
  3. 统一接口,确保了数据的安全。

3.存储过程的使用
  • 创建存储过程
--使用无参
CREATE PROCEDURE 函数名()
BEGIN
	语句;
END;
--使用有参
CREATE PROCEDURE 函数名(参数1,参数2...)
BEGIN
    语句;
END;

OUT输出参数:从存储过程中传出。

CREATE PROCEDURE func(
    OUT c int,
    OUT m int,
    OUT e int
)
BEGIN
	SELECT MAX(Chinese) INTO c FROM students;
	SELECT MAX(math) INTO m FROM students;
	SELECT MAX(English) INTO e FROM students;
END;

--执行
CALL func(@A,@B,@C);

--输出数据
SELECT @A,@B,@C;

IN输入参数:传递给存储过程。

CREATE PROCEDURE func ( 
	IN p int
) 
BEGIN
	SELECT p;
END;

SET @p = 20;

CALL func(@p);

INOUT输入输出参数:对存储过程传入和传出。

CREATE PROCEDURE func ( 
	INOUT p int
) 
BEGIN
	SELECT p;
END;

SET @p = 20;

CALL func(@p);
SELECT @p;

如果在MySQL命令行中执行,要用下面这种形式:

mysql> delimiter //
mysql> CREATE PROCEDURE 函数名()
    -> BEGIN
    ->      语句;
    -> END//
mysql> delimiter;

  • 调用存储过程
CALL 函数名();

  • 删除存储过程
DROP PROCEDURE 函数名;

仅当存在时删除(如果过程不存在也不会报错),可以使用 DROP PROCEDURE IF EXISTS 函数名语句。

DROP PROCEDURE IF EXISTS 函数名;

  • 检查存储过程
SHOW CREATE PROCEDURE 函数名;

可以限制过程状态结果,使用 SHOW PROCEDURE STATUS语句。

SHOW PROCEDURE STATUS LIKE '...';


若有不当之处,欢迎指正!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值