mysql 变量定义和赋值_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 局部变量名;

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

bc8b1c7a67ac8525e8c00742122c8b69.png e3b414287c2b5891f4230774d9fb5e9b.png扫码关注更多数据分析与运营知识干货在此,随时学习!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值