变量
1. 变量的分类
1.查看系统变量
1 | SHOW VARIABLES; |
2.查看满足条件的部分系统变量
1 | SHOW GLOBAL VARIABLES LIKE '%char%'; |
3.查看指定的系统变量
1 | SELECT @@.系统变量名; |
4.为某个系统变量赋值
方式一
1 | SET GLOBAL 系统变量名 = 值; |
方式二
1 | SET @@global.系统变量名 = 值; |
3. 全局变量
用域:针对于所有会话(连接)有效,但不能跨重启
1.查看所有全局变量
1 | SHOW GLOBAL VARIABLES; |
2.查看满足条件的部分系统变量
1 | SHOW GLOBAL VARIABLES LIKE '%char%'; |
3.查看指定的系统变量的值
1 | SELECT @@global.autocommit; |
4.为某个系统变量赋值
1 | SET @@global.autocommit=0; |
4. 会话变量
作用域:针对于当前会话(连接)有效
1.查看所有会话变量
1 | SHOW SESSION VARIABLES; |
2.查看满足条件的部分会话变量
1 | SHOW SESSION VARIABLES LIKE '%char%'; |
3.查看指定的会话变量的值
1 | SELECT @@autocommit; |
4.为某个会话变量赋值
1 | SET @@session.tx_isolation='read-uncommitted'; |
5. 自定义变量
1 | 说明:变量由用户自定义,而不是系统提供的 |
5.1 用户变量
作用域:针对于当前会话(连接)有效,作用域同于会话变量
1.声明并初始化
1 | SET @变量名=值; |
2.赋值
1 | #方式一: |
3.使用 (查看变量的值)
1 | SELECT @变量名; |
1 | # 案例:声明两个变量,求和并打印 |
5.2 局部变量
作用域:仅仅在定义它的begin end块中有效,应用在 begin end中的第一句话
1.声明
1 | DECLARE 变量名 类型; |
2.赋值(更新变量的值)
1 | #方式一: |
3.使用(查看变量的值)
1 | SELECT 局部变量名; |
1 | # 案例:声明两个变量,求和并打印 |
变量 | 作用域 | 定义和使用的位置 | 语法 |
---|---|---|---|
用户变量 | 当前会话 | 会话的任何位置 | 必须加@,不用限定类型 |
局部变量 | begin-end中 | 只能在begin-end中,且为第一句话 | 一般不加@,必须限定类型 |