当前位置: 首页> 科技> 能源 > MySQL——事务与存储过程(二)存储过程的创建(2) 变量的使用

MySQL——事务与存储过程(二)存储过程的创建(2) 变量的使用

时间:2025/7/11 15:15:31来源:https://blog.csdn.net/W_Fe5/article/details/141748977 浏览次数:2次

        在编写存储过程时,有时会需要使用变量保存数据处理过程中的值。在 MySQL中时,可以在子程序中声明并使用,这些变量的作用范围是在BEGIN...END程序中,接下将针对变量的定义和赋值进行详细的讲解。

        想要在存储过程中使用变量,首先需要定义变量。在存储过程中使用 DECLARE 语的定义变量,具体语法格式如下:

DEClARE var_name[,varname]...date_type[DERAULT valbe];

        上述语法格式中,var_name 为局部变量的名称。DEFAULT value 子句给变量提供个默认值。该值除了可以被声明为一个常数之外,还可以被指定为一个表达式。如果有DEFAULT 子句,变量的初始值为 NULL.接下来定义一个名称为 myvariable 的变量,类型为INT 类型,默认值为 100,示例代码如下:

DECLARE myvariable INT DEFAULT 100;

        定义变量之后,为变量赋值可以改变变量的默认值,MySQL 中使用 SET 语句为变量赋值,语法格式如下:

SET var_name=expr[,var_name=expr]...;

        在存储过程中的 SET语句是一般 SET语句的扩展版本。被参考变量可能是子程序内声明的变量,或者是全局服务器变量,如系统变量或者用户变量。

        在存储程序中的 SET语句作为预先存在的 SET 语法的一部分来实现。这允许SET a=x,b=y,……这样的扩展语法。其中不同的变量类型(局域声明变量及全局变量)可以被混合起来。这也允许把局部变量和一些只对系统变量有意义的选项合并起来。

        接下来声明三个变量,分别为 var1、var2、var3,数据类型为 INT,使用 SET 为变量赋值,示例代码如下:

DECLARE varl,var2,var3 INT;
SER var1=10,var2=20;
SET var3=varl+var2;

        除了可以使用 SET 语句为变量赋值外,MySQL 中还可以通过 SELECT…INTO 为一个或多个变量赋值,该语句可以把选定的列直接存储到对应位置的变量。使用SELECT.INTO 的具体语法格式如下:

SELECT col_name[...] INTO var_name[...] table_expr;

        在上述语法格式中,col_name 表示字段名称;var_name 表示定义的变量名称;table_expr 表示查询条件表达式,包括表名称和 WHERE 子句。

        例如,声明变量sgrade 和s_gender,通过 SELECT…INTO 语句查询指定记录并为变量赋值,具体代码如下:

DECLARE s_grade FLOAT;
DECLARE s_gender CHAR(2);
SELEcr grade, gender INTO s_grade,s_gender
FROM student WHERE name ='rose';

        上述语句将 student 表中 name 为rose 的同学的成绩和性别分别存人到了变量s_grade 和 s_gender 中。

关键字:MySQL——事务与存储过程(二)存储过程的创建(2) 变量的使用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: