mysql变量

1.局部变量

begin
    declare g_score int default 10;
end

仅在begin...end之间有效

2.用户变量

set @g_score = 10;
或者
set @g_score :=10;
或者
select @g_socre := 10;
或者
select @g_score := score from grade;

 用户变量以 @var_name的形式表示

select是查询语句。

select @g_score := 10的意思是查询10,将结果10赋值给@g_score变量

select @g_score := score from grade的意思是从grade表中查询score字段值,并将结果赋值给@g_score变量。由于select查询得到的结果可能是多条记录,那么会将最后一条记录值赋值给@g_score;

在使用select查询语句赋值时,使用的是:=而不是=,因为mysql语言认为=是比较运算符,而在编程语言中==是比较运算符

查询用户变量
select @g_score;

3.系统变量

会话变量 session variables

全局变量 global variables

每当成功连接mysql服务器,则表示建立一条会话。会话变量提供给当前连接用户使用,只要断开连接,那么当前用户的所有会话变量被回收。

全局变量是mysql读取my.ini配置文件后,对整个服务器创建的变量。

全局变量的值根据ini文件初始化,当有会话被创建时,则复制一份全局变量给新建的会话使用。当然全局变量和会话变量没有直接联系。修改会话变量不会影响全局变量。修改全局变量后,仅对以后新建的会话变量有影响。对当前已经存在的会话变量是没有影响的。

修改会话变量

set session auto_increment_increment = 2;
或者
set auto_increment_increment = 2;
或者
set @@session.auto_increment_increment = 2;
或者
set @@auto_increment_increment = 2

 先show variables或者show session variables查看有哪些会话变量,可别修改不存在的会话变量

查看会话变量

select @@session.auto_increment_increment;
或者
select @@auto_increment_increment;

 默认session可以省略,服务器知道这是会话变量

修改全局变量

set global auto_increment_increment = 2;
或者
set @@global.auto_increment_increment = 2;

 查看全局变量

select @@global.auto_increment_increment;
原文地址:https://www.cnblogs.com/bibiafa/p/9336625.html