15.存储过程
原创
©著作权归作者所有:来自51CTO博客作者wx63560c7d74933的原创作品,请联系作者获取转载授权,否则将追究法律责任
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;
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;