Maison > Article > base de données > Mysql那些事儿之(十三)变量、条件的使用_MySQL
bitsCN.com
Mysql那些事儿之(十三)变量、条件的使用
相关链接:
Mysql那些事儿之(一)mysql的安装
http:///database/201210/162314.html;
Mysql那些事儿之(二)有关数据库的操作
http:///database/201210/162315.html;
Mysql那些事儿之(三)有关数据表的操作
http:///database/201210/162316.html;
Mysql那些事儿之(四)数据表数据查询操作
http:///database/201210/162317.html;
Mysql那些事儿之(五)操作时间
http:///database/201210/162318.html;
Mysql那些事儿之(六)字符串模式匹配
http:///database/201210/163969.html;
Mysql那些事儿之(七)深入select查询
http:///database/201210/163970.html;
Mysql那些事儿之(八)索引
http:///database/201210/163971.html;
Mysql那些事儿之(九)常用的函数
http:///database/201210/164229.html;
Mysql那些事儿之(十)触发器一
http:///database/201210/164516.html;
Mysql那些事儿之(十一)触发器二
http:///database/201210/164766.html;
Mysql那些事儿之(十二)存储过程
http:///database/201210/164795.html
存储过程中可以使用变量、条件
1.定义变量
通过DECLARE可以定义一个变量,不过是局部的。它的作用范围只能在BEGIN...END有效,可以用在嵌套的块中;当然可以用default设置默认值。
Sql代码
DECLARE var_name [,.....] type [DEFAULT value]
示例:定义一个变量
Sql代码
DECLARE last_day_start DATE --定义一个DATE型的变量,名称为last_day_start
2.变量赋值
可以直接赋值,可以查询赋值。
Sql代码
--直接赋值使用set,可以赋常量或者赋表达式
--语法格式
SET var_name = expr [,var_name = expr.....]
示例:给上面定义的变量赋值
Sql代码
SET last_day_start = DATE_SUB(CURRENT_DATE(),INTERVAL 1 MONTH) --给变量赋值
通过查询给变量赋值
Sql代码
--通过查询给变量赋值
--语法格式
SELECT col_name[,...] INTO var_name [,....] table_expr
Sql代码
--示例 将查询结果给变量赋值
Sql代码
DECLARE v_payment DECIMAL(5,2); --定义一个变量
--使用查询给变量赋值
SELECT IFNULL(SUM(payment.amount),0) INTO v_payment FROM payment
3.条件的定义
Sql代码
--定义条件的语法格式
DECLARE condition_name CONDITION FOR condition_value
condition_value:
SQLSTATE [VALUE] sqlstate_value
| mysql_error_code
4.条件的处理
Sql代码
---条件的处理
DECLARE handler_type HANDLER FOR condition_value [,....] sp_statement
handler_type:
CONTINUE | EXIT | UNDO
condition_value:
SQLSTATE [VALUE]
| condition_name
| SQLWARNING
| NOT FOUND
| SQLEXCEPTION
| mysql_error_code
示例:
Sql代码
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2=1
CONTINUE 表示继续向下执行;
EXIT 表示执行中止。