MySQL变量
MySQL变量分类:
①系统变量 全局变量 会话变量 ②自定义变量 用户变量 局部变量
1.系统变量
变量是由系统提供的,属于服务器层面,分全局变量和会话变量。
系统变量使用语法:
查看所有的系统变量(global/session用法一样): show global variables; #查看全局变量 show session variables; #查看会话变量 show global variables like "%char%"; #模糊查找 select @@global.系统变量名 ; #查看某个指定系统变量的值 给系统变量赋值: set global 全局变量名 = 值; set session 会话变量名 = 值; set @@global.全局变量名 = 值; set @@session.会话变量名 = 值;
注意:全局变量必须加上global ,而会话变量的session可以省略。
全局变量和会话变量的作用区别: 全局变量的赋值在服务器再次重启前全部有效,但重启后失效,如果需要永久有效需要修改对应的配置文件; 会话变量修改只针对当前会话窗口有效,新建一个会话窗口就失效了。
2.自定义变量
变量是用户自定的,非系统提供的变量。使用步骤:申明——赋值——使用。
用户变量:
作用域:只针对当前的会话窗口 申明: set @用户变量名 := 值; #申明并初始化 select @用户变量名 := 值; #申明并初始化 赋值方法1: set @用户变量名 := 值; #申明并赋值 select @用户变量名 := 值; #申明并赋值 赋值方法2: set @c :=1; select count(*) into @c from jalenxr; 先申明 再赋值:select 字段 into @变量名 from 表; 使用: select @用户变量名; select 成绩,@用户变量名 := @用户变量名+1 from 成绩表 order by 成绩 desc;
## 用户变量
set @a := 1;
set @b := 3;
set @c := @a + @b;
select @c ;
用户变量常用于排名、分组排名等问题中。
局部变量:
作用域:仅在定义它的begin ... end中有效,且在第一句。 申明: declare 变量名 数据类型; declare 变量名 数据类型 default 值; 赋值方法1: set 变量名 := 值; #申明并赋值 select @变量名 := 值; #申明并赋值 赋值方法2: 先申明 再赋值:select 字段 into 变量名 from 表; 使用 select 局部变量名;
局部变量主要使用在存储过程中。存储过程公众号中有单独的文章讲解。


文章转载自数据运营与数据分析,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




