MySQL之存储过程(二)

来源:互联网 发布:打印机添加usb虚拟端口 编辑:程序博客网 时间:2024/05/04 21:49

 流程控制结构

 

一、条件分支结构

IF语句

CASE 语句

IF  ELSE

语法:

IF        条件1   THEN    语句集合

【ELSEIF   条件2   THEN    语句集合】

【ELSE     语句集合】

END IF;  注意有空格

  注意:形参中的变量如果和存储过程中的局部变量同名,会“覆盖”;

形参变量在存储过程中无大小写的要求;

CASE

语法

  Case  变量

     When  变量取值1  then  语句集合

     When   变量取值2 then   语句集合

     Else   语句集合

  End  case;

  Case

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

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

    Else   语句集合

  End  case;

二、循环语句

while语句

repeat语句

loop语句

 

   Create procedure p1()

   Begin

     Declare v int;

     Set v=0;

     While v<5 do    ------------循环的入口(必须满足的条件)

       Insert into t1 values(v);

       Set v=v+1;    -------------循环的出口(退出循环的条件)

      End while;

End//

Call p1();//

Select * from t1;//

提醒:执行结束后的系统返回是针对最后一条insert语句;

 

Create  procedure p2()

Begin

   Declare  v int;                                              

   Set  v=0;

   Repeat

     Insert  into  t1  values(v);

     Set  v=v+1;  ----------出口条件

     Until  v>5;    ----------入口条件

    End  repeat;

  End//                 

 

 

Create  procedure  p3()

 Begin

    Declare  v  int;

    Set  v=0;

     Loop_label:LOOP

       Insert into  t1 values(v);

       Set  v=v+1;

       If  v>5  then

           Leave  loop_label;         

        End if;

      End loop;

  End//

除了以上三种循环之外还有一种GOTO语句,这个语句已经被淘汰,不推荐使用,因为他是强制性的转向,会使程序混乱。