一、系统变量
说明: 变量由系统提供
语法:
- 查看所有系统变量
SHOW GLOBAL/SESSION VARIABLES - 查看满足条件的部分系统变量
SHOW GLOBAL/SESSION VARIABLES LIKE ‘%char%’ - 查看某个系统变量值
SELECT @@GLOBAL/SESSION.系统变量名 - 为某个系统变量赋值
SET GLOBAL/SESSION 系统变量名 = 值;
或者
SET @@GLOBAL/SESSION.系统变量名 = 值;
二、自定义变量
说明:非系统提供
-
用户变量
作用域:只针对当前会话有效
① 声明并初始化
SET @用户变量名 = 值;
SET @用户变量名 := 值;
SELECT @用户变量名 := 值;
②赋值
方式一:
SET @用户变量名 = 值;
SET @用户变量名 := 值;
SELECT @用户变量名 := 值;
方式二:
SELECT 字段 INTO @变量名 FROM 表
③查看
SELECT @用户变量 -
局部变量
作用域:仅在 begin end中有效
①声明:DECLARE 变量名 类型 DEFAULT 值;
②赋值
SET 局部变量名 = 值;
SET 局部变量名 := 值;
SELECT 局部变量名 := 值;
③使用
SELECT 局部变量名;
对比用户变量和局部变量
作用域 定义和使用位置 语法
用户 当前会话 会话中任何位置 加@,不限定类型
局部 begin end中 只能在begin end中第一句话 一般不加@,需限定类型