mysql创建存储过程

今天是2017年9月8日,距离国庆还有1,2,3,4,...还有还些天呢,进入工作之后有的时候感觉对学习有了一个全新的认识,以前认为学习就是记住,现在才知道学习其实仅仅是知道就可以,知道有这一块就行了,大概会用就可以了。好了不谈这些无用的东西了,我们来一起看看存储过程。

存储过程是一些sql语句的集合,比如有的时候我们可能需要一大串的sql语句,或者说在编写SQL语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。

那么如何创建一个存储过程:

drop procedure if EXISTS pr_sub;
create PROCEDURE pr_sub(
  x int,
  y int
)
begin
 declare s int; 
if x is null THEN
    set x=10;
end if;
if y is null THEN
   set y=20;
end if;
  set s=y-x;
  SELECT s as subofyx;
END
set @a=10;
set @b=20;
call pr_sub(@b,@a);
上面是一个存储过程活生生的例子,虽然说有点简单,但是也不妨碍我们对存储过程语法的研究。

create procedure procedure_name

(

   [in|out] param1 param_type,

   [in|out] param2 param_type

)

begin

     sql statements;

end;

从上面的活生生的例子我们就看出了一个简单那的存储过程一般的格式,[in|out]是表示in和out是可以选择的,in表示是输入参数,out表示是输出参数,我们在声明参数的参数的时候可以指定一个参数是输入参数或者是输出参数。当然也可以不写,比如说我们在上面活生生的例子中我们就是讲这两个采参数省略掉了,省略了不代表是没有,而是使用默认的in,输入参数。

接下来我们来看看另外的一个活生生的例子,这个我们来看一下带有输出参数的out,,,,来来来大家快来看啊:

drop procedure if exists pr_multi;
create PROCEDURE pr_multi(
  out c int,
  a int,
  b int
)
begin
if a is null THEN
    set a=10;
end if;
if b IS null THEN
    set b=20;
end if;
set c=a*b;
END
call pr_multi(@name,5,3);
select @name
我们看调用存储使用的关键字是call procedure_name(param,..)猜猜最后输出是多少:

@name

15

猜中没有,没有的话就给自己一个耳光吧。。。。。开玩笑,别当真微笑

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值