前言:
代码中被[]包含的表示可选,|符号分开的表示可选其一。
我们在使用mysql的过程中,变量也会经常用到,比如查询系统的配置,可以通过查看系统变量来了解,当我们需要修改系统的一些配置的时候,也可以通过修改系统变量的值来进行。
我们需要做一些批处理脚本的时候,可以使用自定义变量,来做到数据的复用。
本文内容
-
详解系统变量的使用
-
详解自定义变量的使用
一、变量分类
-
系统变量
-
自定义变量
二、系统变量
概念:系统变量由系统定义的,不是用户定义的,属于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`字符的变量*/
show global variables like '%tx%';
/*查看指定名称的系统变量的值,如查看事务默认自动提交设置*/
select @@global.autocommit;
为某个变量赋值
/*为某个系统变量赋值*/
set global autocommit=0;
set @@global.autocommit=1;
四、会话变量
作用域
针对当前会话(连接)有效,不能跨连接。
会话变量是在连接创建时由mysql自动给当前会话设置的变量。
示例
/*①查看所有会话变量*/
show session variables;
/*②查看满足条件的步伐会话变量*/
/*查看包含`char`字符变量名的会话变量*/
show session variables like '%char%';
/*③查看指定的会话变量的值*/
/*查看事务默认自动提交的设置*/
select @@autocommit;
select @@session.autocommit;
/*查看事务隔离级别*/
select @@tx_isolation;
select @@session.tx_isolation;
/*④为某个会话变量赋值*/
set @@session.tx_isolation='read-uncommitted';
set @@tx_isolation='read-committed';
set session tx_isolation='read-committed';
set tx_isolation='read-committed';
五、自定义变量
概念
变量由用户自定义的,而不是系统提供的。
使用
使用步骤: 1. 声明 2. 赋值 3. 使用(查看、比较、运算)
分类
-
用户变量
-
局部变量
用户变量