MySQL中的变量

变量分类

  1. 系统变量
    • 全局变量
    • 会话变量
  2. 自定义变量
    • 用户变量
    • 局部变量

1. 系统变量

变量由系统提供,不是由用户自定义的。

相关语法
  • 查看所有的系统变量(全局|会话,如果缺省默认为session)
SHOW GLOBAL|SESSION VARIABLES;
  • 查看满足条件的部分系统变量
SHOW GLOBAL|SESSION VARIABLES LIKE '%char%';
  • 查看指定的某个系统变量的值
SELECT @@global|@@session.系统变量名;
  • 给某个系统变量赋值
SET @@global|session.系统变量名 =;  -- 方式1 
SET GLOBAL|SESSION 系统变量名 =;    -- 方式2
作用域
  • 全局变量
    属于服务器层面,当服务启动时,它将所有全局变量初始化为默认值,其作用域为服务器的整个生命周期,这意味着它针对所有的会话(连接)有效,但不能跨重启,即服务器重启后又会初始化。
  • 会话变量
    仅仅针对于当前会话(连接)有效。

2. 自定义变量

变量由用户自定义的,不是由系统提供的。

  • 使用步骤:
    • 声明
    • 赋值
    • 使用(查看、比较、运算等)
用户变量
  1. 作用域:针对于当前会话(连接)有效,同于会话变量的作用域。可以定义在任何地方,begin end里面外面皆可
  2. 使用
    • 声明并初始化(必须在声明同时初始化)
    SET    @用户变量名  =;  -- 方式1
    SET    @用户变量名 :=;  -- 方式2
    SELECT @用户变量名 :=;  -- 方式3
    
    • 赋值
    -- 方式1:跟初始化时赋值方式相同
    SET    @用户变量名  =;
    SET    @用户变量名 :=;
    SELECT @用户变量名 :=;
    
    -- 方式2:通过select into
    SELECT 字段 INTO @用户变量名 FROM;
    
    • 使用(查看变量的值)
    SELECT @用户变量名;
    
局部变量
  1. 作用域:仅仅在局部有效,即定义它的begin end里面有效。只能定义在begin end里面的开头
  2. 使用
    • 声明
    DECLARE 变量名 类型;                 -- 方式1,只声明
    DECLARE 变量名 类型 DEFAULT 初始值;  -- 方式2,声明并初始化
    
    • 赋值(跟用户变量相同)
    -- 方式1
    SET    局部变量名   =;
    SET    局部变量名  :=;
    SELECT @局部变量名 :=;  -- 注意:这个要加@
    
    -- 方式2:通过select into
    SELECT 字段 INTO 局部变量名 FROM;
    
    • 使用(查看变量的值)
    SELECT 局部变量名;
    
对比用户变量和局部变量
变量名作用域定义位置语法
用户变量当前会话会话中的任何地方必须加@,不用限定类型
局部变量begin end中begin end的开头一般不用加@,需要限定类型
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值