Mysql基础(14)mysql变量

mysql的变量分为系统变量和自定义变量。其中,系统变量包括全局变量和会话变量,自定义变量包括用户变量和局部变量。

系统变量

系统变量由系统提供,用户不能定义,属于服务器层面,分为全局变量、会话变量,两者主要是作用域的不同。

服务器每次启动会根据配置文件为所有的全局变量赋初始值,且针对所有会话连接有效。但要注意,某次启动之后修改了某个全局变量的初始值,重启服务之后,该全局变量仍会恢复到初始值,即全局变量不能跨重启有效。

会话变量的作用域只在当前会话上下文。

基本操作

在执行系统变量相关操作时,会使用global和session两个关键字。

一般全局变量使用global关键字,会话变量使用session关键字。

默认情况操作的会话变量。

  • 查看所有的系统变量

    show [global|session] variables;
    
  • 查看满足条件的部分系统变量

    show [global|session] variables like '%xxx%'
    
  • 查看指定的某一个系统变量的值

    该命令使用select关键字,且当指明是全局或会话时有一个点好。

    select @@[global|session.]var_name
    
  • 为某个系统变量赋值

    # 方式一
    set [global|session] var_name = 值;
    # 方式二
    set [global|session] var_name = 值;
    

自定义变量

顾名思义,自定义变量是由用户自行定义的,分为用户变量和局部变量。

同高级语言类似,其操作主要有声明、赋值、使用。

用户变量

用户变量旨在当前会话连接有效,类似会话变量的作用域。

基本操作

  1. 声明并初始化
#方式一
set @用户变量名=值;
#方式二 加冒号为了区别等号
set @用户变量名:=值;
# 方式三
select @用户变量名:=值;
  1. 赋值(更新用户变量值)
# 方式一 同声明方式一致,即使用set或select重新声明。
set @用户变量名=值;
set @用户变量名:=值;
select @用户变量名:=值;

# 方式二  这种方式把业务数据写入到公共数据,可共享数据。
select  字段 
into  @用户变量名
from 表名字;
  1. 使用(查看用户变量的值)
select @变量名
使用测试
# 声明并初始化
SET @te:=123

#查看
SELECT @test; //123

# 赋值并查看
SET @test:=456
SELECT @test; //456

#赋值并查看
SELECT COUNT(*) INTO @test FROM jobs
SELECT @test  //19

局部变量

局部变量只在定义它的begin end语句块(存储过程相关内容)内部有效,且应用是只能在begin end语句快的第一句话。这不同于用户变量的作用域在当前会话,且可在会话的任何地方定义和使用。

基本操作

同用户变量类似,局部变量的操作也包括三项内容。

  1. 声明和初始化

    declare 变量名 类型 [default  值]
    
  2. 赋值

    # 方式一 同声明方式一致,即使用set或select重新声明。
    set @局部变量名=值;
    set @局部变量名:=值;
    select @局部变量名:=值;
    
    # 方式二  这种方式把业务数据写入到公共数据,可共享数据。
    select  字段 
    into  @局部变量名
    from 表名字;
    
  3. 使用

    select 局部变量名;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值