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 @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;