首页 > 编程笔记 > MySQL笔记 阅读:44

MySQL变量的定义和赋值(附带实例)

MySQL 中,变量可以在子程序中声明并使用,这些变量的作用范围是在 BEGIN...END 程序中。本节主要介绍如何定义变量和为变量赋值。

MySQL变量的定义

在存储过程中使用 DECLARE 语句定义变量,语法格式如下:
DECLARE var_name[,varname]... date_type [DEFAULT value];

例如,定义名称为“myparam”的变量,类型为 INT 类型,默认值为 100,SQL 语句如下:
DECLARE  myparam  INT  DEFAULT 100;

MySQL为变量赋值

定义变量之后,为变量赋值可以改变变量的默认值。在 MySQL 中,使用 SET 语句为变量赋值,语法格式如下:
SET var_name = expr [, var_name = expr] ...;
存储程序中的 SET 语句是一般 SET 语句的扩展版本。被参考变量可能是子程序内声明的变量或者是全局服务器变量,如系统变量或者用户变量。

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

【实例 1】声明 3 个变量,分别为 var1、var2 和 var3,数据类型为 INT,使用 SET 为变量赋值,SQL 语句如下:
DECLARE var1, var2, var3 INT;
SET var1 = 10, var2 = 20;
SET var3 = var1 + var2;

在 MySQL 中,还可以通过 SELECT ... INTO 为一个或多个变量赋值,语法如下:
SELECT col_name[,...] INTO var_name[,...] table_expr;
这个 SELECT 语法把选定的列直接存储为对应位置的变量:
【实例 2】声明变量 fruitname 和 fruitprice,通过 SELECT ... INTO 语句查询指定记录并为变量赋值,SQL 语句如下:
DECLARE fruitname CHAR(50);
DECLARE fruitprice DECIMAL(8,2);

SELECT f_name,f_price INTO fruitname, fruitprice
FROM fruits WHERE f_id ='a1';

相关文章