MySQL 存储过程控制语句
- 变量作用域
内部的变量在其作用域范围内享有更高的优先权,当执行到end。变量时,内部变量消失,此时已经在其作用域外,变量不再可见了,应为在存储过程外再也不能找到这个申明的变量,但是你可以通过out参数或者将其值指派给会话变量来保存其值。- mysql > DELIMITER //
- mysql > CREATE PROCEDURE proc3()
- -> begin
- -> declare x1 varchar() default 'outer';
- -> begin
- -> declare x1 varchar() default 'inner';
- -> select x1;
- -> end;
- -> select x1;
- -> end;
- -> //
- mysql > DELIMITER ;
- mysql > DELIMITER //
- 条件语句
- if-then -else 语句
- mysql > DELIMITER //
- mysql > CREATE PROCEDURE proc2(IN parameter int)
- -> begin
- -> declare var int;
- -> set var=parameter+;
- -> if var= then
- -> insert into t values();
- -> end if;
- -> if parameter= then
- -> update t set s1=s1+;
- -> else
- -> update t set s1=s1+;
- -> end if;
- -> end;
- -> //
- mysql > DELIMITER ;
- mysql > DELIMITER //
- case 语句
- mysql > DELIMITER //
- mysql > CREATE PROCEDURE proc3 (in parameter int)
- -> begin
- -> declare var int;
- -> set var=parameter+;
- -> case var
- -> when then
- -> insert into t values();
- -> when then
- -> insert into t values();
- -> else
- -> insert into t values();
- -> end case;
- -> end;
- -> //
- mysql > DELIMITER ;
- mysql > DELIMITER //
- if-then -else 语句
- 循环语句
- while ···· end while 语句
- mysql > DELIMITER //
- mysql > CREATE PROCEDURE proc4()
- -> begin
- -> declare var int;
- -> set var=;
- -> while var< do
- -> insert into t values(var);
- -> set var=var+;
- -> end while;
- -> end;
- -> //
- mysql > DELIMITER ;
- mysql > DELIMITER //
- repeat···· end repeat 语句
- mysql > DELIMITER //
- mysql > CREATE PROCEDURE proc5 ()
- -> begin
- -> declare v int;
- -> set v=;
- -> repeat
- -> insert into t values(v);
- -> set v=v+;
- -> until v>=
- -> end repeat;
- -> end;
- -> //
- mysql > DELIMITER ;
它在执行操作后检查结果,而while则是执行前进行检查。
- mysql > DELIMITER //
- loop ·····end loop 语句
- mysql > DELIMITER //
- mysql > CREATE PROCEDURE proc6 ()
- -> begin
- -> declare v int;
- -> set v=;
- -> LOOP_LABLE:loop
- -> insert into t values(v);
- -> set v=v+;
- -> if v >= then
- -> leave LOOP_LABLE;
- -> end if;
- -> end loop;
- -> end;
- -> //
- mysql > DELIMITER ;
loop循环不需要初始条件,这点和while 循环相似,同时和repeat循环一样不需要结束条件, leave语句的意义是离开循环。
- mysql > DELIMITER //
- while ···· end while 语句
- LABLES 标识
LABLES(例如 LOOP_LABLE:)可以用在begin repeat while 或者loop 语句前,语句标号只能在合法的语句前面使用。可以跳出循环,使运行指令达到复合语句的最后一步。 - ITERATE 迭代
- mysql > DELIMITER //
- mysql > CREATE PROCEDURE proc10 ()
- -> begin
- -> declare v int;
- -> set v=;
- -> LOOP_LABLE:loop
- -> if v= then
- -> set v=v+;
- -> ITERATE LOOP_LABLE;
- -> end if;
- -> insert into t values(v);
- -> set v=v+;
- -> if v>= then
- -> leave LOOP_LABLE;
- -> end if;
- -> end loop;
- -> end;
- -> //
- mysql > DELIMITER ;
通过引用复合语句的标号,来从新开始复合语句
- mysql > DELIMITER //
MySQL 存储过程控制语句的更多相关文章
- mysql存储过程详解
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...
- mysql存储过程学习
一.存储过程的创建 语法: CREATE PROCEDURE sp_name (参数)合法的SQL语句 mysql> delimiter // mysql> CREATE PROCEDUR ...
- mysql存储过程详细教程
记录mysql存储过程中的关键语法:DELIMITER // 声明语句结束符,用于区分;CREATE PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程 ...
- Mysql存储过程总结
1. 关于MySQL的存储过程 存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.好在MySQL 5.0终于开始已经支持存储过 ...
- MySQL存储过程中的3种循环
在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...
- mysql 存储过程详解 存储过程
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成 ...
- MySQL存储过程详解 mysql 存储过程
原文地址:MySQL存储过程详解 mysql 存储过程作者:王者佳暮 mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...
- MySQL存储过程学习笔记
MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣.MySQL 5.0终于开始支持存储过程了. MySQL的关键字大小写通用.该学习笔记对关键字使用大写:变量名,表名使用小写. ...
- MySQL存储过程详解 mysql 存储过程(二)
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...
随机推荐
- BZOJ3110: [Zjoi2013]K大数查询
喜闻乐见的简单树套树= =第一维按权值建树状数组,第二维按下标建动态开点线段树,修改相当于第二维区间加,查询在树状数组上二分,比一般的线段树还短= =可惜并不能跑过整体二分= =另外bzoj上的数据有 ...
- sql 的实用函数(包含日期函数、截取字符串函数)
CONVERT() 函数是把日期转换为新数据类型的通用函数. CONVERT() 函数可以用不同的格式显示日期/时间数据. 语法 CONVERT(data_type(length),data_to_b ...
- 【PHP开发篇】一个统计客户端商机提交的获取IP地址
1.对客服提交数据的ip地址记录. 获取ip地址的方法: public function getIP() { global $ip; if (getenv("HTTP_X_REAL_IP&q ...
- Unity里的Mesh属性
----------------------------------------------------------------------------------------------- Mesh ...
- Ubuntu12.04安装lnmp环境笔记
说明:笔记中使用的命令都是在root账户权限下执行的,如果使用的是普通账户,请注意在命令前加上“sudo”指令. 1.更新apt-get软件库: 命令:apt-get update 该操作的目的是确保 ...
- js的继承
js要实现继承有很多方法,个人总结大致分为三种: function people(){ this.specials = "人类"; } function p1(name){ thi ...
- java基础 集合 ArrayList 增删改除
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- [BZOJ1112][POI2008]砖块Klo
[BZOJ1112][POI2008]砖块Klo 试题描述 N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:从某柱砖的顶端拿一块砖出来,丢掉不要了. 2:从仓库中拿出一块砖,放到另 ...
- 网站建设中帝国cms如何循环调用栏目下级分类
类似的形式,调用下级分类 ?php $bclassid=[!--self.classid--]; //选择当前栏目的id,如果调用指定栏目下的多级分类,则填写栏目id //取得本栏目下的子栏目 ? [ ...
- Git 常用命令合集
$ git init 建立git仓库(一般都是在github上新建好,直接克隆到本地) $ git clone **.git 克隆git仓库 $ git add -A ...