一、mysql变量类型
1、局部变量
2、用户变量
3、会话变量
4、全局变量
二、变量解释与使用
1、局部变量相比学过编程语言的同学自然都知道,相当于方法中的变量,使用关键字declare。
-- declare语句专门用于定义局部变量,可以使用default来说明默认值
declare age int default 0;
-- 局部变量的赋值方式一
set age=18;
-- 局部变量的赋值方式二
select StuAge
into age
from demo.student
where StuNo='A001';/2
2、用户变量的使用
-- 第一种用法,使用set时可以用“=”或“:=”两种赋值符号赋值
set @age=19;
set @age:=20;
-- 第二种用法,使用select时必须用“:=”赋值符号赋值
select @age:=22;
select @age:=StuAge
from demo.student
where StuNo='A001';
3、会话变量
mysql会话变量,服务器为每个连接的客户端维护一系列会话变量。
其作用域仅限于当前连接,即每个连接中的会话变量是独立的。(一次连接中作用)
-- 显示所有的会话变量
show session variables;
-- 设置会话变量的值的三种方式
set session auto_increment_increment=1;
set @@session.auto_increment_increment=2;
set auto_increment_increment=3; -- 当省略session关键字时,默认缺省为session,即设置会话变量的值
-- 查询会话变量的值的三种方式
select @@auto_increment_increment;
select @@session.auto_increment_increment;
show session variables like '%auto_increment_increment%'; -- session关键字可省略
-- 关键字session也可用关键字local替代
set @@local.auto_increment_increment=1;
select @@local.auto_increment_increment;
四、全局变量,服务启动时候开始
#显示所有的全局变量
show global variables;
#查询全局变量的值的两种方式
show variables like '%sql_warnings%'; #查询变量值的通用方式
select @@global.sql_warnings; #使用@@global.的方式,类似于java中对象名.变量名
#设置全局变量的值的两种方式
set sql_warnings=FALSE; #直接设置
set global sql_warnings=FALSE; #使用global关键字,设置选定的范围,最好加上global
set @@global.sql_warnings=OFF; #使用@@global.的方式,类似于java中对象名.变量名