MySQL存储过程

存储过程的概念

是一组为了完成特定功能的SQL语句集,经编译后存储在数据库

存储过程的优点

  • 通过把处理封装在容易使用的单元中,简化复杂的操作
  • 通常存储过程有助于提高应用程序的性能
  • 存储过程有助于减少应用程序和数据库服务器之间的流量
  • 存储的程序对任何应用程序都是可重用和透明的,提高程序开发效率

存储过程的缺点

  • 增加数据库服务器开销
  • 难以调试
  • 开发和维护难度高

创建存储过程

procedureName:存储过程名称(自定义)
IN:输入参数,表示调用者向过程传入值(传入的值可以是字面量也可以是变量)
OUT:输出参数,表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
INOUT:输入输出参数,既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

--创建存储过程
CREATE PROCEDURE procedureName(IN a INT,IN b INT,OUT sum INT)
BEGIN
	SET sum = a+b;
END

调用存储过程

procedureName:存储过程名称
1、2:参数
@sum:局部变量
调用存储过程:
CALL procedureName(1,2,@sum);
查看存储过程输出结果:
SELECT @sum;

定义变量

  • 语法:
    DECLARE variableName dateType DEFAULT value;
  • 示例:
    DECLAE name VARCHAR(20) DEFAULT 'jack';

变量赋值与使用

  • 语法:
    SET name = value;
  • 示例:创建一个名称为p_school的存储过程,在存储过程中使用变量
--创建存储过程
CREATE PROCEDURE p_school()
BEGIN
	--声明一个类型为VARCHAR的name变量
	DECLARE name VARCHAR(20);
	--给类型为VARCHAR的name变量赋值为'jack'
	SET name = 'jack';
	SELECT * FROM studentinfo WHERE studentName = name;
END;
--调用过程
CALL p_school ();

显示存储过程

  • 语法:
    SHOW PROCEDURE STATUS;
  • 显示特定数据库的存储过程:
    SHOW PROCEDURE STATUS WHERE db='databaseName';
  • 显示特定模式的存储过程:
    SHOW PROCEDURE STATUS WHERE name LIKE '%my%';
  • 显示存储过程的源码:
    SHOW CREATE PROCEDURE procedureName;
  • 删除存储过程:
    DROP PROCEDURE procedureName;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值