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

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

3.缺点
可移植性:存储过程的可移植性较差,如果更换数据库,要重写存储过程。
可扩展性:存储过程难以调试和扩展。

4.语法

#存储过程定义
delimiter //
create procedure procedureName(入参,出参)
begin
存储过程;
end
//
delimiter ;

#存储过程调用
call procedureName(入参,出参);

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

delimiter //
create procedure my_sum(in a int, in b int, out result int)
begin
set result = a + b;
end
//
delimiter ;

call my_sum(10, 20, @result);
select @result;

15.存储过程_存储过程

6.存储过程示例:计算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 ;

call my_n_sum(10, @result);
select @result;

15.存储过程_存储过程_02