1.变量分类
    1.1系统变量
    1.2自定义变量
2.系统变量
    2.1简要介绍
    2.2系统变量-全局变量
    2.3系统变量-会话变量
3.自定义变量
    3.1自定义变量-用户变量
    3.2自定义变量-局部变量
4.小结

 

1.变量分类

1.1系统变量

  全局变量

   会话变量

1.2自定义变量

  用户变量

  局部变量

 

2.系统变量

2.1简要介绍

  系统变量,是指系统早已定义好的内置的变量

2.2系统变量-全局变量

2.2.1作用域

  全局有效

2.2.2查看

  查看所有:SHOW GLOBAL VARIABLES

  条件查询:SHOW GLOBAL VARIABLES LIKE '%ge%'

  查看某个变量的值:SELECT GLOBAL  @@变量名

2.2.3赋值
       
1)set GLOBAL 变量名 = 值
        2)set @@GLOBAL.变量名=值

2.2.4备注说明

  服务器启动时所有的全局变量会有默认值。也就是说对全局变量进行修改后,mysql服务器重启后,值会回到默认值,如果想永久修改,需要修改配置文件。

 

2.2.5示例

1)

SHOW GLOBAL VARIABLES;

 

 2)

SHOW GLOBAL VARIABLES LIKE '%connect%';

 

 3)

SELECT @@GLOBAL.max_connections;

 

 4)

SET @@GLOBAL.max_connections=10;
SELECT @@GLOBAL.max_connections;

在另一个会话查看,值同样变化了

SELECT @@GLOBAL.max_connections;

 

2.3系统变量-会话变量

2.2.1作用域

  当前会话(连接)有效,下图左右是两个会话(连接)

  

 

2.2.2查看

  查看所有:SHOW SESSION VARIABLES

  条件查询:SHOW SESSION VARIABLES LIKE '%ge%'

  查看某个变量的值:SELECT SESSION @@变量名

 

2.2.3赋值 
        
set SESSION 变量名 = 值   
        set @@SESSION .变量名=值

  不要SESSION 默认也是SESSION

 

2.2.4示例

1)

SHOW SESSION  VARIABLES;

 

2)

SHOW  VARIABLES LIKE '%connect%';

 

3)

SELECT @@auto_increment_offset;

 

 4)

SET @@auto_increment_offset=2;
SELECT @@auto_increment_offset;

 在另一个会话查询,值还是1,值没有变化,说明它的作用域只是当前会话

SELECT @@auto_increment_offset;

 

 

3.自定义变量

3.1自定义变量-用户变量

3.1.1作用

当前会话(连接)有效,和系统变量的会话变量的作用域相同

 

3.1.2定义+赋值

  用户变量在定义的时候必须赋值,定义变量和赋值的语法一样

  1)set @变量名 = 值
       2)set @变量名:=值
       3)select @变量名:=值
       4)select 字段 into @变量名 from 表  

3.1.3查看

  查看某个变量:select @变量名

 

3.1.4示例

1)

SET @asd=123;

 

2)

SELECT @asd;

 在另外一个会话查看,没有值,说明它的作用域只是当前会话

SELECT @asd;

 

3.2自定义变量-局部变量

3.1.1作用域

 BEGIN END中局部有效。局部变量只能在BEGIN END中使用,也就是在存储函数、方法中使用

 

3.2.2定义

  DECLARE 变量名 类型

    DECLARE 变量名 类型DEFAULT 默认值

 

3.2.3赋值

  1)set 变量名 = 值
       2)set 变量名:=值
       3)select 变量名:=值
       4)select 字段 into 变量名 from 表  

 

4.小结

 变量类型    作用范围                    查看语法             定义语法              赋值语法            备注说明  

系统变量

全局变量

全局

查看所有:SHOW GLOBAL VARIABLES

条件查询:SHOW GLOBAL VARIABLES LIKE '%ge%'

查看某个变量的值:SELECT GLOBAL  @@变量名

                  无

1)set GLOBAL 变量名 = 值

2)set @@GLOBAL.变量名=值

服务器启动时所有的全局变量会有默认值

也就是说对全局变量进行修改后

mysql服务器重启后,值会回到默认值

如果想永久修改,需要修改配置文件

 

系统变量

会话变量

当前会话(连接) 查看所有:SHOW SESSION VARIABLES

条件查询:SHOW SESSION VARIABLES LIKE '%ge%'

查看某个变量的值:SELECT SESSION @@变量名
                   无 1)set SESSION 变量名 = 值   
2)set @@SESSION .变量名=值
语句中不要SESSION 默认就是SESSION  

自定义变量

用户变量

当前会话(连接) select @变量名

1)set @变量名 = 值
2)set @变量名:=值
3)select @变量名:=值
4)select 字段 into @变量名 from 表

1)set @变量名 = 值
2)set @变量名:=值
3)select @变量名:=值
4)select 字段 into @变量名 from 表

定义变量时必须赋值

定义和赋值语法一样

 

自定义变量     

局部变量

BEGIN END中局部 select 变量名 1)DECLARE 变量名 类型

2) DECLARE 变量名 类型DEFAULT 默认值
1)set 变量名 = 值
2)set 变量名:=值
3)select 变量名:=值
4)select 字段 into 变量名 from 表 

只能在BEGIN END中使用

定义时需要指定类型