系统变量
系统变量是MySQL服务器提供的,不是用户定义得,属于服务器层面。分为全局变量(GLOBAL)、会话变量(SESSION)。
- 查看系统变量
SHOW [SESSION|GLOBAL] VARIABLES; --查看所有系统变量
SHOW [SESSION|GLOBAL] VARABLES LIKE '%...' --like匹配系统变量
SELECT @@[SESSION.|GLOBAL.] VARABLES 系统变量名 --、查看指定配系统变量
例如: SELECT @@session.autocommit
- 设置系统变量
SET [SESSION|GLOBAL] 系统变量名 = 值;
SET @@[SESSION|GLOBAL] 系统变量名 = 值;
用户自定义变量
用户定义变量是用户根据自己需要自己定义得变量,用户变量不用提前声明,在用的时候直接空'@变量名' 使用就可以。其作用域为当前连接(当前会话)。
设置用户变量
SET @var_name = 值[,@var_name = 值] ... ;
SET @var_name := 值[,@var_name = 值] ... ;
SELECT @var_name := 值[,@var_name := 值]...;
SELECT 字段名 INTO @var_name from 表名
例如:select count(*) into @value from activity;
使用用户变量
SELECT @var_name;
局部变量
局部变量是根据需要定义得再局部生效得变量,访问之前,需要DECLARE声明。可用作存储过程内得局部便改良和输入参数,局部变量得范围是在其内声明得BEGIN---END块中。
声明局部变量
DECLARE 变量名 变量类型 [DEFAULIT 默认值];
declare name vartchar(10) default 'xrh';
给局部变量赋值
SET 变量名 = 值;
SER 变量名 := 值;
SELECT 字段名 INTO 变量名 FROM 表明 ...;