欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL - 28存储过程的基本使用

程序员文章站 2022-04-14 20:40:05
...

什么是存储过程

存储过程(Stored Procedure)是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中, 用户可通过指定存储过程的名字并给定参数(需要时)来调用执行,类似于编程语言中的方法或函数。

存储过程的优点:

  1. 存储过程是对SQL语句的封装,增强可复用性
  2. 存储过程可以隐藏复杂的业务逻辑、商业逻辑
  3. 存储过程支持接收参数,并返回运算结果

存储过程的缺点:

  1. 存储过程的可移植性较差,如果更换数据库,要重写存储过程
  2. 存储过程难以调试和扩展
  3. 无法使用Explain对存储过程进行分析
  4. 《阿里巴巴Java开发手册》中禁止使用存储过程

存储过程示例:求两数之和

MySQL - 28存储过程的基本使用

存储过程示例:计算1+2+…+n的和

#存储过程定义:计算1+2+...+n的和
delimiter //
create procedure my_n_sum(in n int, out result int) 
begin
declare i int default 1; 
declare sum int default 0;

while i<=n do
	set sum = sum + i; 
	set i = i + 1;
end while;

set result = sum; 
end;
// delimiter ;

实战案例

mysql> delimiter //
mysql> create procedure my_sum(in a int, in b int, out result int) begin set result = a + b; end//
Query OK, 0 rows affected (0.03 sec)
mysql> call my_sum(10, 20, @result); select @result//
Query OK, 0 rows affected (0.00 sec)

+---------+
| @result |
+---------+
|      30 |
+---------+
1 row in set (0.00 sec)
相关标签: MySQL教程 mysql