1 系统变量:变量由系统提供,不是用户定义,属于服务器层面
全局变量(global)
Show global variables;
作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有会话(连接)有效,但不能跨重启(需要修改重写配置文件)
会话变量(session)
Show variables;
作用域:仅仅针对于当前会话(连接)有效。

2 自定义变量:变量是用户自定义的,不是系统的
用户变量
作用域:当前会话(连接)有效
使用步骤:
声明并初始化:set @变量名=值;set @变量名:=值;select 变量名:=值
赋值(更新):
方式一:set @; select @
方式二:select 字段 into 变量名 from 表
使用(查看(select)、比较、运算等)
局部变量
作用域:仅仅定义在他的begin end中有效,第一句话
声明:declare 变量名 类型;declare 变量名 类型 default 值;
赋值(更新):
方式一:set ; select @
方式二:select 字段 into 变量名 from 表
使用(查看(select)、比较、运算等)

3 用户变量和局部变量的对比
图片说明
4 语法
1、查看所有的系统变量
Show global[session] variables;查看全局变量(会话变量)
2、查看满足条件的部分系统变量
Show global[session] variables like ‘%char%’;
3、查看指定的某个系统变量的值
Select @@global[session].tx_isolation;
4、为某个系统变量赋值
Set global[session] 系统变量名=值;