存储过程的定义

来源:互联网 发布:mysql数据库分页语句 编辑:程序博客网 时间:2024/05/03 02:37

一、定义

存储过程可以一次性执行成批的sql语句,也叫批处理;

优点:1、批处理,减少客户与服务之间的交流次数;

             2、在服务器端运行,移植性好;

            3、安全要求高的行业;

           4、包含流程控制结构的sql语句的集合;

二、创建存储过程

先声明新的结束符(任选,但是避免在mysql环境下有特殊含义):delimiter //

语法格式:

create procedure p_name(in c_name 数据类型)      ----in是默认的,可以不写

in:输入形参的应用  OUT:输出形参的使用,用一个变量(实参位置)保存存储过程中返回的结果

【特征描述1、使用什么语言创建存储过程,2、结果的确定性,3、权限,4、注释】

sql语句集合(可以是一条或多条)

例如:

        create procedure p1() select * from table;

         create procedure p1()

          begin

              流程控制结构;

                sql语句集合;

        end//

declare(声明) var_name type;

存储过程的局部变量是临时结果;

作用范围:从声明位置开始,到end结束;

用户定义变量:声明开始set @x=3;到断开连接结束,不能和其他用户共享;

三、流程控制结构

1、条件结构

语法格式:

 if  条件 then  语句集合

elseif  条件  then  语句集合

else  语句集合

end if                  ----注意有空格

当形参中的变量如果和存储过程中的局部变量同名时,会“覆盖”;形参变量在存储过程中无大小写的要求;

case语法:

1)

 case  变量

      when  变量取值1  then  语句集合

      when  变量取值2  then  语句集合

      else  语句集合

 end case;

2)

 case

     when  变量与值1表达式  then  语句集合

     when  变量与值2表达式  then  语句集合

     else

 end case;

2、循环结构

while ······ end while

loop  ······  end loop

repeat ····  end repeat

goto (不推荐使用)

四、select ····· into 变量列表

只能应用在存储过程中

原创粉丝点击