1. 变量作用域
    内部的变量在其作用域范围内享有更高的优先权,当执行到end。变量时,内部变量消失,此时已经在其作用域外,变量不再可见了,应为在存储过程外再也不能找到这个申明的变量,但是你可以通过out参数或者将其值指派给会话变量来保存其值。

    1. mysql > DELIMITER //
    2. mysql > CREATE PROCEDURE proc3()
    3. -> begin
    4. -> declare x1 varchar() default 'outer';
    5. -> begin
    6. -> declare x1 varchar() default 'inner';
    7. -> select x1;
    8. -> end;
    9. -> select x1;
    10. -> end;
    11. -> //
    12. mysql > DELIMITER ;
  2. 条件语句
    • if-then -else 语句

      1. mysql > DELIMITER //
      2. mysql > CREATE PROCEDURE proc2(IN parameter int)
      3. -> begin
      4. -> declare var int;
      5. -> set var=parameter+;
      6. -> if var= then
      7. -> insert into t values();
      8. -> end if;
      9. -> if parameter= then
      10. -> update t set s1=s1+;
      11. -> else
      12. -> update t set s1=s1+;
      13. -> end if;
      14. -> end;
      15. -> //
      16. mysql > DELIMITER ;
    • case 语句
      1. mysql > DELIMITER //
      2. mysql > CREATE PROCEDURE proc3 (in parameter int)
      3. -> begin
      4. -> declare var int;
      5. -> set var=parameter+;
      6. -> case var
      7. -> when then
      8. -> insert into t values();
      9. -> when then
      10. -> insert into t values();
      11. -> else
      12. -> insert into t values();
      13. -> end case;
      14. -> end;
      15. -> //
      16. mysql > DELIMITER ;
  3. 循环语句
    • while ···· end while 语句

      1. mysql > DELIMITER //
      2. mysql > CREATE PROCEDURE proc4()
      3. -> begin
      4. -> declare var int;
      5. -> set var=;
      6. -> while var< do
      7. -> insert into t values(var);
      8. -> set var=var+;
      9. -> end while;
      10. -> end;
      11. -> //
      12. mysql > DELIMITER ;
    • repeat···· end repeat 语句
      1. mysql > DELIMITER //
      2. mysql > CREATE PROCEDURE proc5 ()
      3. -> begin
      4. -> declare v int;
      5. -> set v=;
      6. -> repeat
      7. -> insert into t values(v);
      8. -> set v=v+;
      9. -> until v>=
      10. -> end repeat;
      11. -> end;
      12. -> //
      13. mysql > DELIMITER ;

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

    • loop ·····end loop 语句
      1. mysql > DELIMITER //
      2. mysql > CREATE PROCEDURE proc6 ()
      3. -> begin
      4. -> declare v int;
      5. -> set v=;
      6. -> LOOP_LABLE:loop
      7. -> insert into t values(v);
      8. -> set v=v+;
      9. -> if v >= then
      10. -> leave LOOP_LABLE;
      11. -> end if;
      12. -> end loop;
      13. -> end;
      14. -> //
      15. mysql > DELIMITER ;

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

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

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

MySQL 存储过程控制语句的更多相关文章

  1. mysql存储过程详解

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  2. mysql存储过程学习

    一.存储过程的创建 语法: CREATE PROCEDURE sp_name (参数)合法的SQL语句 mysql> delimiter // mysql> CREATE PROCEDUR ...

  3. mysql存储过程详细教程

    记录mysql存储过程中的关键语法:DELIMITER //  声明语句结束符,用于区分;CREATE PROCEDURE demo_in_parameter(IN p_in int)  声明存储过程 ...

  4. Mysql存储过程总结

    1.     关于MySQL的存储过程 存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.好在MySQL 5.0终于开始已经支持存储过 ...

  5. MySQL存储过程中的3种循环

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...

  6. mysql 存储过程详解 存储过程

    mysql存储过程详解 1.      存储过程简介         我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成 ...

  7. MySQL存储过程详解 mysql 存储过程

    原文地址:MySQL存储过程详解  mysql 存储过程作者:王者佳暮 mysql存储过程详解 1.     存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...

  8. MySQL存储过程学习笔记

    MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.MySQL 5.0终于开始支持存储过程了. MySQL的关键字大小写通用.该学习笔记对关键字使用大写:变量名,表名使用小写. ...

  9. MySQL存储过程详解 mysql 存储过程(二)

    mysql存储过程详解 1.      存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...

随机推荐

  1. BZOJ3110: [Zjoi2013]K大数查询

    喜闻乐见的简单树套树= =第一维按权值建树状数组,第二维按下标建动态开点线段树,修改相当于第二维区间加,查询在树状数组上二分,比一般的线段树还短= =可惜并不能跑过整体二分= =另外bzoj上的数据有 ...

  2. sql 的实用函数(包含日期函数、截取字符串函数)

    CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(data_type(length),data_to_b ...

  3. 【PHP开发篇】一个统计客户端商机提交的获取IP地址

    1.对客服提交数据的ip地址记录. 获取ip地址的方法: public function getIP() { global $ip; if (getenv("HTTP_X_REAL_IP&q ...

  4. Unity里的Mesh属性

    ----------------------------------------------------------------------------------------------- Mesh ...

  5. Ubuntu12.04安装lnmp环境笔记

    说明:笔记中使用的命令都是在root账户权限下执行的,如果使用的是普通账户,请注意在命令前加上“sudo”指令. 1.更新apt-get软件库: 命令:apt-get update 该操作的目的是确保 ...

  6. js的继承

    js要实现继承有很多方法,个人总结大致分为三种: function people(){ this.specials = "人类"; } function p1(name){ thi ...

  7. java基础 集合 ArrayList 增删改除

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  8. [BZOJ1112][POI2008]砖块Klo

    [BZOJ1112][POI2008]砖块Klo 试题描述 N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:从某柱砖的顶端拿一块砖出来,丢掉不要了. 2:从仓库中拿出一块砖,放到另 ...

  9. 网站建设中帝国cms如何循环调用栏目下级分类

    类似的形式,调用下级分类 ?php $bclassid=[!--self.classid--]; //选择当前栏目的id,如果调用指定栏目下的多级分类,则填写栏目id //取得本栏目下的子栏目 ? [ ...

  10. Git 常用命令合集

    $ git init          建立git仓库(一般都是在github上新建好,直接克隆到本地) $ git clone **.git       克隆git仓库 $ git add -A   ...