系统变量是由系统提供的,不需要自定义
9.1 变量的分类
- 全局变量
服务器层面上的,必须拥有super权限才能为系统变量赋值,作用于整个服务器,也就是针对所有的连接/会话
- 局部变量
服务器为每一个连接的客户端都提供了系统变量,作用于当前的连接/会话
9.1.1 查看系统变量
# 如果没有显式的声明global或session,则默认是sessionshow [global|session] variables;
9.1.2 查看指定系统变量的值
select @@[blobal|session].变量名;
9.1.3 为系统变量赋值
# 如果没有显式的声明global或session,则默认是session
# 方式一
set [global|session] 变量名=值
# 方式二
set @@global.变量名=值
set @@变量名=值
9.2 自定义变量
9.2.1 用户变量
作用域:针对于当前会话/连接 生效
位置:可以在begin and中,也可以在begin and外
声明和赋值
# 方式一:
set @变量名=值;`或者`set @变量名:=值;
# 方式二:
或者`select @变量名:=值;
更新值
set @变量名=值;
set @变量名:=值;
select @变量名:=值;
select 值 into @变量名 from 表;
使用变量
select @变量名;
9.2.2 局部变量
作用域:仅仅在定义它的begin and中有效
位置:只能放在begin end中,而且只能放在第一句
声明和赋值
declare 变量名 类型 [default 默认值]
更新值
set 变量名=值;
set 变量名:=值;
select 变量名:=值;
select 值 into 变量名 from 表;
使用变量
select 变量名;
