红魔方_D

闲来无事不从容,突然想来写内容; 万一内容有问题,请你口下多留情。 —— ——横批《赐教》

导航

MySQL变量的使用

在mysql文档中,mysql变量可分为两大类,即系统变量和用户变量。

但根据实际应用又被细化为四种类型,即局部变量、用户变量、会话变量和全局变量。

一、局部变量

mysql局部变量,只能用在begin/end语句块中,比如存储过程中的begin/end语句块。

其作用域仅限于该语句块。

 1 -- declare语句专门用于定义局部变量,可以使用default来说明默认值
 2 declare age int default 0;
 3 
 4 -- 局部变量的赋值方式一
 5 set age=18;
 6 
 7 -- 局部变量的赋值方式二
 8 select StuAge 
 9 into age
10 from demo.student 
11 where StuNo='A001';

二、用户变量

mysql用户变量,mysql中用户变量不用提前申明,在用的时候直接用“@变量名”使用就可以了。

其作用域为当前连接。

 1 -- 第一种用法,使用set时可以用“=”或“:=”两种赋值符号赋值
 2 set @age=19;
 3 
 4 set @age:=20;
 5 
 6 -- 第二种用法,使用select时必须用“:=”赋值符号赋值
 7 select @age:=22;
 8 
 9 select @age:=StuAge 
10 from demo.student 
11 where StuNo='A001';

三、会话变量

mysql会话变量,服务器为每个连接的客户端维护一系列会话变量。

其作用域仅限于当前连接,即每个连接中的会话变量是独立的。

 1 -- 显示所有的会话变量
 2 show session variables;
 3 
 4 -- 设置会话变量的值的三种方式
 5 set session auto_increment_increment=1;
 6 set @@session.auto_increment_increment=2;
 7 set auto_increment_increment=3;        -- 当省略session关键字时,默认缺省为session,即设置会话变量的值
 8 
 9 -- 查询会话变量的值的三种方式
10 select @@auto_increment_increment;
11 select @@session.auto_increment_increment;
12 show session variables like '%auto_increment_increment%';        -- session关键字可省略
13 
14 -- 关键字session也可用关键字local替代
15 set @@local.auto_increment_increment=1;
16 select @@local.auto_increment_increment;

四、全局变量

mysql全局变量,全局变量影响服务器整体操作,当服务启动时,它将所有全局变量初始化为默认值。要想更改全局变量,必须具有super权限。

其作用域为server的整个生命周期。

 1 -- 显示所有的全局变量
 2 show global variables;
 3 
 4 -- 设置全局变量的值的两种方式
 5 set global sql_warnings=ON;        -- global不能省略
 6 set @@global.sql_warnings=OFF;
 7 
 8 -- 查询全局变量的值的两种方式
 9 select @@global.sql_warnings;
10 show global variables like '%sql_warnings%';

 

 

posted on 2021-07-21 17:36  红魔方_D  阅读(129)  评论(0编辑  收藏  举报