数据库之存储过程-- 基于MySQL

存储过程基本语法

create procedure procedure_name  [;number]

[{@parameter data_type}[varying][=default][output]]

1.只返回单一记录集合的存储过程

drop Procedure if EXISTS proc_adder;-- 如果存在该存储过程即删除存储过程
CREATE PROCEDURE proc_adder()  -- 创建存储过程
BEGIN
select * from base_card; -- 执行sql语句
END

call proc_adder  --执行存储过程

2.含有输入输出参数

DROP PROCEDURE IF EXISTS proc_adder;
CREATE PROCEDURE proc_adder(IN a varchar(256),OUT card_id int)
BEGIN
select * from base_card where card_no = a;
set card_id = a;
END
set @a = '20170720';
call proc_adder(@a,@card_id);
select @card_id;

运行函数得到的结果如下:

可以通过两种途径执行存储过程:

1.通过call方法。

2.通过界面运行存储过程,直接输入参数

 3存储过程中的控制语句

drop procedure if exists proc_if;
create procedure proc_if (in sum int)
begin
declare c varchar(500);
if sum >=100 then
set c = 'good';
elseif sum< 100 THEN
set c ='well';
else
set c = 'come on';
end if;
select c;
end
call proc_if(99)

原文地址:https://www.cnblogs.com/fengyiru6369/p/7212520.html