您的位置:首页 > 数据库 > MySQL

MySQL的用户变量和系统变量

2016-09-18 09:10 351 查看
MySQL中的变量分为用户变量与系统变量。

一、用户变量

用户变量是指与数据库的一次连接中声明的变量,在连接断开后就会消失。

1、变量命名

变量名必须以@开头,例如@name

2、声明及赋值

声明与赋值的方法两种,一种是使用set语句,一种是使用select语句。

/*使用set语句声明变量并赋值(注:声明的时候必须赋初值)*/
set @name='zhangsan';

/*使用select语句声明并赋值*/
select @age:=23;


3、查看用户变量

查看变量使用select语句

select @name;


二、系统变量

系统变量又分为全局变量与会话变量。

全局变量在MySQL启动的时候由服务器自动将它们初始化为默认值,这些默认值可以通过更改my.ini这个文件来更改。

会话变量在每次建立一个新的连接的时候,由MySQL来初始化,MySQL会将当前所有全局变量的值复制一份,作为会话变量。也就是说,如果在建立会话以后,没有手动更改过会话变量与全局变量的值,那所有这些变量的值都是一样的。

全局变量与会话变量的区别就在于,对全局变量的修改会影响到整个服务器,但是对会话变量的修改,只会影响到当前的会话(也就是当前的数据库连接)。

1、查看系统变量

查看全局变量可以使用show global variables语句,查看会话变量可以使用show session variables或者show variables语句。这些语句会列出所有的变量,如果需要查看某个变量,可以在后面加like进行模糊查询,例如:show variables like ‘%sql_mode%’。

另外,还可以使用select语句来查看系统变量。

会话变量:select @@ session/local.varname;

全局变量:select @@global.varname;

/*查询所有的全局变量*/
show global variables;

/*查询所有的会话变量*/
show variables;

/*查询名字中含有sql_mode的全局变量*/
show global variables like '%sql_mode%';
select @@global.varname;

/*查询名字中含有sql_mode的会话变量*/
show variables like '%sql_mode%';
select @@session.varname;
select @@local.varname;


2、修改系统变量

跟修改用户变量相同,修改系统变量使用的也是set语句。

当需要修改会话变量时,可以使用

set session varname=value
//或者
set @@session.varname=value


当需要修改系统变量时,可以使用

set global varname=value
//或者
set @@ global.varname=value
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 变量