zoukankan      html  css  js  c++  java
  • MySQL 存储过程控制语句

    1. 变量作用域
      内部的变量在其作用域范围内享有更高的优先权,当执行到end。变量时,内部变量消失,此时已经在其作用域外,变量不再可见了,应为在存储过程外再也不能找到这个申明的变量,但是你可以通过out参数或者将其值指派给会话变量来保存其值。
      mysql > DELIMITER //  
      mysql > CREATE PROCEDURE proc3()  
           -> begin 
           -> declare x1 varchar(5) default 'outer';  
           -> begin 
           -> declare x1 varchar(5) default 'inner';  
           -> select x1;  
           -> end;  
           -> select x1;  
           -> end;  
           -> //  
      mysql > DELIMITER ;
    2. 条件语句
      • if-then -else 语句
        mysql > DELIMITER //  
        mysql > CREATE PROCEDURE proc2(IN parameter int)  
             -> begin 
             -> declare var int;  
             -> set var=parameter+1;  
             -> if var=0 then 
             -> insert into t values(17);  
             -> end if;  
             -> if parameter=0 then 
             -> update t set s1=s1+1;  
             -> else 
             -> update t set s1=s1+2;  
             -> end if;  
             -> end;  
             -> //  
        mysql > DELIMITER ;  
      • case 语句
        mysql > DELIMITER //  
        mysql > CREATE PROCEDURE proc3 (in parameter int)  
             -> begin 
             -> declare var int;  
             -> set var=parameter+1;  
             -> case var  
             -> when 0 then   
             -> insert into t values(17);  
             -> when 1 then   
             -> insert into t values(18);  
             -> else   
             -> insert into t values(19);  
             -> end case;  
             -> end;  
             -> //  
        mysql > DELIMITER ; 
    3. 循环语句
      • while ···· end while 语句
        mysql > DELIMITER //  
        mysql > CREATE PROCEDURE proc4()  
             -> begin 
             -> declare var int;  
             -> set var=0;  
             -> while var<6 do  
             -> insert into t values(var);  
             -> set var=var+1;  
             -> end while;  
             -> end;  
             -> //  
        mysql > DELIMITER ; 
      • repeat···· end repeat 语句
        mysql > DELIMITER //  
        mysql > CREATE PROCEDURE proc5 ()  
             -> begin   
             -> declare v int;  
             -> set v=0;  
             -> repeat  
             -> insert into t values(v);  
             -> set v=v+1;  
             -> until v>=5  
             -> end repeat;  
             -> end;  
             -> //  
        mysql > DELIMITER ; 

        它在执行操作后检查结果,而while则是执行前进行检查。

      • loop ·····end loop 语句
        mysql > DELIMITER //  
        mysql > CREATE PROCEDURE proc6 ()  
             -> begin 
             -> declare v int;  
             -> set v=0;  
             -> LOOP_LABLE:loop  
             -> insert into t values(v);  
             -> set v=v+1;  
             -> if v >=5 then 
             -> leave LOOP_LABLE;  
             -> end if;  
             -> end loop;  
             -> end;  
             -> //  
        mysql > DELIMITER ;  

        loop循环不需要初始条件,这点和while 循环相似,同时和repeat循环一样不需要结束条件, leave语句的意义是离开循环。

    4. LABLES 标识
      LABLES(例如 LOOP_LABLE:)可以用在begin repeat while 或者loop 语句前,语句标号只能在合法的语句前面使用。可以跳出循环,使运行指令达到复合语句的最后一步。
    5. ITERATE 迭代
      mysql > DELIMITER //  
      mysql > CREATE PROCEDURE proc10 ()  
           -> begin 
           -> declare v int;  
           -> set v=0;  
           -> LOOP_LABLE:loop  
           -> if v=3 then   
           -> set v=v+1;  
           -> ITERATE LOOP_LABLE;  
           -> end if;  
           -> insert into t values(v);  
           -> set v=v+1;  
           -> if v>=5 then 
           -> leave LOOP_LABLE;  
           -> end if;  
           -> end loop;  
           -> end;  
           -> //  
      mysql > DELIMITER ; 

      通过引用复合语句的标号,来从新开始复合语句

  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/tannerBG/p/4079074.html
Copyright © 2011-2022 走看看