在编写存储过程中,有时需要使用变量,保存数据处理过程中的值 MysqL中,变量可以在子程序中,声明并使用,作用范围在BEGIN……END程序中
<h3 id="定义变量">定义变量@H_301_2@
在存储过程中,使用DECLARE语句,定义变量 语法格式 DECLARE var_name[,varname]……date_type[DEFAULT value]
<h3 id="参数说明">参数说明@H_301_2@
Var_name,为局部变量的名称 DEFAULT value,子句给变量提供一个默认值,该值除了可以声明为一个常数之外,还可以被指定为一个表达式 如果,没有DEFAULT子句,变量的初始值为NULL
定义一个名称为myvariable的变量,类型为INT类型,默认值为100 DECLARE myvariable INT DEFAULT 100;
<h3 id="使用set为变量赋值">使用SET为变量赋值@H_301_2@
定义变量之后,为变量赋值,改变变量的默认值 MysqL中,使用SET语句为变量赋值 SET var_name=expr [,var_name=expr]……;
MysqL中 允许不同的变量类型,局域声明变量及全局变量,可以混合起来 允许把局部变量,和一些只对系统变量有意义的选项合并起来 SET a=x,b=y,……
声明三个变量,分别为var1、var2、var3,数据类型为INT,使用SET为变量赋值 DECLARE var1,var2,var3 int; SET var1=10,var2=20; SET var3=var1+var2;
<h3 id="使用selectinto为变量赋值">使用SELECT……INTO为变量赋值@H_301_2@
此外,除了使用SET为变量赋值 MysqL中,可以使用SELECT……INTO为一个或多个变量赋值 该语句可以把选定的列,直接存储到对应位置的变量 语法格式 SELECT col_name[……] INTO var_name [……] table_expr;
<h3 id="参数说明-1">参数说明@H_301_2@
Col_name,表示字段名称 Var_name,表示定义的变量名称 Table_expr,表示查询条件表达式,包括表名称和WHERE子句
声明变量s_grade和s_gender,通过SELECT……INTO语句,查询指定记录,并为变量赋值
图片描述" title="">
上述语句,将student表中,name为rose的同学的成绩和性别,分别存入到了变量s_grade和s_gender中