zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL数据库,详解变量使用(一)

2023-03-14 22:58:57 时间

变量分类

• 系统变量

• ⾃定义变量

系统变量

概念

系统变量由系统定义的,不是⽤户定义的,属于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)