0
点赞
收藏
分享

微信扫一扫

MySQL变量解析

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 局部变量名;

局部变量主要使用在存储过程中。存储过程公众号中有单独的文章讲解。

MySQL变量解析_变量名



MySQL变量解析_赋值_02



举报

相关推荐

0 条评论