SQL存储过程是什么

简单的说就是预先定义好的sql语句,在需要的时候直接调用即可

存储过程是一种封装了SQL的语句集,并能实现相应的逻辑功能。当存储过程执行成功后会被存储在数据库服务器中,并允许客户端直接调用,这大大提高了SQL语句的执行效率和安全性。下面,我们来看看如何使用存储过程。

      创建存储过程:

      create procedure 存储过程名称([[in|out|inout] param_name type[,...]])
      begin
              存储过程具体逻辑
      end

      存储过程的参数分为IN、OUT、INOUT类型,分别表示输入类型参数、输出类型参数以及输入输出类型参数。IN是默认的参数类型;OUT表示输出类型参数,即它可以把存储过程内部的数据传递给调用者;而INOUT类型参数既可以把数据传入到存储过程中,也可以把存储过程的数据传递给调用者。

     好了,我们具体看看如何创建存储过程吧:     

1.无参的存储过程的创建
         delimiter  //
         create procedure my_proc()
              begin
                  update scoreinfo set remark='优秀' where scores>=90;
              end //
         delimiter ;
         如何调用呢?
         call my_proc();
        调用此存储过程后,分数超过90分的remark字段都会被修改为'优秀'。
    2.创建带有IN类型参数的存储过程        
        delimiter  //
        create procedure  my_proc(in param int)
             begin
                 if (param is not null) then
                       update scoreinfo set remark='一般' where scores<=70;
                 end if;
             end  //
        delimiter ;

        调用此存储过程:call my_proc(1)
   3.创建带有out 类型参数的存储过程

       delimiter //
       create procedure my_proc(out param int)
             begin
                   select count(*) into param from scoreinfo;
             end  //
       delimiter ;

       调用此存储过程:call my_proc(@x);
       查询用户变量x的值: select @x;

   4.创建带有inout类型参数的存储过程
       delimiter  //
       create procedure  my_proc(inout param int)
          begin
               if (param is not null) the
                     select count(*) into param from scoreinfo;
               end if;
          end //
       delimiter ;
      调用此存储过程:
       set @a=1 ;
       call my_proc(@a) ;
       select @a;
     先给用户变量a赋值为1,然后调用存储过程并将a传入,最后查询用户变量a的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值