变量分类
• 系统变量
• ⾃定义变量
系统变量
概念
系统变量由系统定义的,不是⽤户定义的,属于mysql服务器层⾯的。
系统变量分类
• 全局变量
• 会话变量
使⽤步骤
查看系统变量
//1.查看系统所有变量
show [global | session] variables;
//查看全局变量
show global variables;
//查看会话变量
show session variables;
show variables;
上⾯使⽤了show关键字
查看满⾜条件的系统变量
通过like模糊匹配指定的变量
//查看满⾜条件的系统变量(like模糊匹配)
show [global|session] like '%变量名%';
上⾯使⽤了show和like关键字。查看指定的系统变量
//查看指定的系统变量的值
select @@[global.|session.]系统变量名称;
注意select和@@关键字,global和session后⾯有个.符号。
赋值
//⽅式1
set [global|session] 系统变量名=值;
//⽅式2
set @@[global.|session.]系统变量名=值;
注意:
上⾯使⽤中介绍的,全局变量需要添加global关键字,会话变量需要添加session
关键字,如果不写,默认为session级别。
全局变量的使⽤中⽤到了@@关键字,后⾯会介绍⾃定义变量,⾃定义变量中使
⽤了⼀个@符号,这点需要和全局变量区分⼀下。
全局变量
作⽤域
mysql服务器每次启动都会为所有的系统变量设置初始值。
我们为系统变量赋值,针对所有会话(连接)有效,可以跨连接,但不能跨重启,重启之
后,mysql服务器会再次为所有系统变量赋初始值。
示例
查看所有全局变量
/*查看所有全局变量*/
show global variables;查看包含'tx'字符的变量
/*查看包含`tx`字符的变量*/
mysql> show global variables like '%tx%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| tx_isolation | REPEATABLE-READ |
| tx_read_only | OFF |
+---------------+-----------------+
2 rows in set, 1 warning (0.00 sec)
/*查看指定名称的系统变量的值,如查看事务默认⾃动提交设置*/
mysql> select @@global.autocommit;
+---------------------+
| @@global.autocommit |
+---------------------+
| 0 |
+---------------------+
1 row in set (0.00 sec)
为某个变量赋值
/*为某个系统变量赋值*/
set global autocommit=0;
set @@global.autocommit=1;
mysql> set global autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@global.autocommit;
+---------------------+
| @@global.autocommit |
+---------------------+
| 0 |
+---------------------+
1 row in set (0.00 sec)
mysql> set @@global.autocommit=1;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@global.autocommit;+---------------------+
| @@global.autocommit |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.00 sec)