存储过程是为了完成特定功能的 SQL 语句集,经过编译创建并保存在数据库中,用户可以通过指定存储过程的名字并给定参数来调用执行,类似于编程语言中的方法或函数。
存储过程的语法如下:
[delimiter 声明语句结束符]
create procedure 存储过程名称([存储过程参数])
begin
sql 逻辑
end
[声明语句结束符]
[delimiter ;]
例如:
delimiter //
create procedure num_sum(in num1 int, in num2 int ,out result int)
begin
set result=num1+num2;
end
//
delimiter ;
在这个存储过程中入参为 num1 和 num2 表示,需要在参数名前面加上 in 表示入参,参数名后面是参数类型。result 是出参,需要在参数名前面加上 out。调用这个存储过程使用 call 关键字:
call num_sum(10,20,@result);
select @result;
如果存储过程里需要定义变量,可使用 declare 关键字定义,个变量赋值使用 set 关键字:
delimiter //
create procedure num_sum_add2(in num1 int, in num2 int ,out result int)
begin
declare n int ;
set n=num1+num2;
set result=n+2;
end
//
delimiter ;