变量可以在子程序(性能、存储过程、匿名块)声明和使用。这些变量的范围是在BEGIN...END规划。
变量的定义
语法格式:
DECLARE var_name [, var_name]... data_type [ DEFAULT value ];
var_name为局部变量的名称;
DEFAULT value子句指定指定变量的默认值,value除了能够被声明为一个常量外,还能够被指定为一个表达式。假设没有DEFAULT子句,变量的初始值为NULL。
演示样例:
DECLARE myparam INT DEFAULT 100;
变量赋值
定义变量以后。为变量赋值能够改变变量的默认值。MySQL中使用SET语句为变量赋值。
在存储程序中的SET语句是一般SET语句的扩展版本号。被參考变量可能是子程序内声明的变量,或者是全局server变量。如系统变量或者用户变量。
语法1:
SET var_name=expr [, var_name=expr]...;
演示样例1:
声明3个变量,分别为var1, var2和var3。数据类型为INT,使用SET为变量赋值
DECLARE var1, var2, var3 INT; SET var1=10, var2=20; SET var3=var1+var2;
语法2:SELECT INTO为变量赋值
SELECT INTO语法把选定的列直接存储到相应位置的变量。
MySQL中还能够通过SELECT...INTO为一个或者多个变量赋值,语法例如以下:
SELECT col_name[,...] INTO var_name[,...] table_expr [WHERE...];
演示样例2:
声明变量v_employee_name和v_employee_salary,通过SELECT...INTO语句查询指定记录并为变量赋值:
DECLARE v_employee_name VARCHAR(100); DECLARE v_employee_salary DECIMAL(8,4); SELECT employee_name, employee_salary INTO v_employee_name, v_employee_salary FROM employees WHERE employee_id=1;
------------------------------------------------------------------------------------------------------------------------
假设您们在尝试的过程中遇到什么问题或者我的代码有错误的地方,请给予指正。很感谢。
联系方式:david.louis.tian@outlook.com
版权的@:转载请注明出处!
版权声明:本文博主原创文章。博客,未经同意不得转载。