Mysql那些事兒之(十三)變量、條件的使用
相關鏈接:
Mysql那些事兒之(一)mysql的安裝
http://www.BkJia.com/database/201210/162314.html;
Mysql那些事兒之(二)有關數據庫的操作
http://www.BkJia.com/database/201210/162315.html;
Mysql那些事兒之(三)有關數據表的操作
http://www.BkJia.com/database/201210/162316.html;
Mysql那些事兒之(四)數據表數據查詢操作
http://www.BkJia.com/database/201210/162317.html;
Mysql那些事兒之(五)操作時間
http://www.BkJia.com/database/201210/162318.html;
Mysql那些事兒之(六)字符串模式匹配
http://www.BkJia.com/database/201210/163969.html;
Mysql那些事兒之(七)深入select查詢
http://www.BkJia.com/database/201210/163970.html;
Mysql那些事兒之(八)索引
http://www.BkJia.com/database/201210/163971.html;
Mysql那些事兒之(九)常用的函數
http://www.BkJia.com/database/201210/164229.html;
Mysql那些事兒之(十)觸發器一
http://www.BkJia.com/database/201210/164516.html;
Mysql那些事兒之(十一)觸發器二
http://www.BkJia.com/database/201210/164766.html;
Mysql那些事兒之(十二)存儲過程
http://www.BkJia.com/database/201210/164795.html
存儲過程中可以使用變量、條件
1.定義變量 www.2cto.com
通過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代碼
--示例 將查詢結果給變量賦值
www.2cto.com
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 表示執行中止。