分类:

(1)系统变量:全局变量、会话变量

(2)自定义变量:用户变量、局部变量

一、系统变量

说明:变量由系统提供,不是用户定义,属于服务器层面

(1)全局变量

作用域:服务器每次启动为所有的全局变量赋初始值,针对于所有的会话(连接),但不能跨重启

(2)会话变量

作用域:仅仅针对于当前会话(连接)有效

使用语法:

1、查看所有的系统变量

SHOW  GLOBAL(全局变量) / SESSION(会话变量) VARIABLES; 

2、查看满足条件的部分系统变量

SHOW VARIABLES LIKE '%char%'; 

3、查看指定的某个系统变量

SELECT @@ GLOBAL / SESSION 系统变量名;

4、为某个系统变量赋值

SET GLOBAL / SESSION 系统变量名 = 值;

或:
SET @@ global / session . 系统变量名 = 值;

<注:全局级别需要加gloabl,会话级别需要加session,如果不加默认为session>

eg1.查看所有全局变量

SHOW GLOBAL VARIABLES;

eg2.查看包含character的全局变量

SHOW VARIABLES LIKE '%char%'; 

eg3.查看指定变量的值

SELECT @@global.autocommit;

SELECT @@tx_isolation;

eg4.为某个全局变量赋值

set @@global.autocommit=0;

二、自定义变量

说明:变量使用户自定义的,不是由系统定义

使用步骤:

声明、赋值、使用(查看、比较、运算等)

1、用户变量

作用域:针对当前会话(连接)游戏哎,同于系统变量中的会话变量作用域

应用在任何地方,也就是begin end里面或begin end外面

(1)声明并初始化

赋值操作符:= 或:=

#方法一        SET @用户变量名=值;
#方法二         SET @用户变量名:=值;
#方法三        SELECT @用户变量名:=值;

(2)赋值或更新用户变量值

#方法一 :通过set或select

SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值;

#方法二 :通过select into

SELECT 字段 INTO 变量名
FROM 表;

eg1:将员工个数赋值到count变量中

SELECT COUNT(*) INTO @count
FROM employees;

(3)使用(查看用户变量的值)

SELECT @用户变量名;

eg1:SELECT @count;

MYSQL设置全局变量 mysql 全局变量_mysql

2、局部变量

 作用域:仅仅在定义它的begin end中有效

应用在begin end中的第一句话

(1)声明

DECLARE 变量名 类型;

或:
DECLARE 变量名 类型 DEFAULT 值;

(2)赋值

#方法一 :通过set或select

SET 局部变量名=值;
SET 局部变量名:=值;
SELECT @局部变量名:=值;

#方法二 :通过select into

SELECT 字段 INTO 局部变量名
FROM 表;

(3)使用

SELECT 局部变量名;

#用户变量与局部变量对比:

MYSQL设置全局变量 mysql 全局变量_变量名_02

eg1.声明两个变量并赋初值,求和,并打印
#用户变量
SET @m=1;
 SET @n=2;
 SET @sum=@m+@n;
 SELECT @sum;