15 —— MySQL中的变量

本文深入解析MySQL中的变量类别,包括系统变量(全局与会话)和自定义变量(用户与局部)。详细介绍了变量的查询、赋值及应用实例,是理解和运用MySQL变量的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量的类别:

  • 系统变量:全局变量、会话变量。(作用域:是所有的连接,当关闭服务再重启时,之前的设置将失效)
  • 自定义变量:用户变量、局部变量(作用域:仅仅针对当前会话连接有效)

一、系统变量

  • 系统变量如果是全局的则加 global,如果是会话级则加session,如果省略则表示会话级

1、查询系统变量

# 查询所有的全局变量
show global variables;

# 查看所有会话变量,session 可以省略
show [session] variavles;

# 查看满足条件的部分系统变量,如所有的字符集
SHOW VARIABLES LIKE '%char%';

# 查看某个指定的系统变量的值,查看指定的用select来查
SELECT @@系统变量名

# 查看指定的全局变量值,会话变量值时session可以省略
select @@global.系统变量名;

2、为某个系统变量赋值

方法一:
# 为某个全局系统变量赋值
set global 系统变量名=值;
# 为某个会话系统变量赋值
set [session] 系统变量名=值;

方法二:
set @@global.系统变量名=值;    # 全局系统变量赋值
set @@session.系统变量名=值;   # 会话系统变量赋值

二、自定义变量

1、用户变量:

  • 作用域:针对当前会话连接有效,等同于会话变量的作用域

(1)、声明并初始化:

# 语法:
set @用户变量名=值;    # 方式1
set @用户变量名:=值;   # 方式2
select @用户变量名:=值 # 方式3

(2)、为变量赋值

set @用户变量名=值;    # 方式1
set @用户变量名:=值;   # 方式2
select @用户变量名:=值 # 方式3

select 字段 into 变量名 from 表;  # 方式4,相当于将字段的值赋给变量

2、局部变量

  • 作用域:仅仅在定义它的 begin end 中有效(只能在 begin end 块中)
  • 必须应用在 begin end 的第一句话

(1)、声明

declare 变量名 类型;
declare 变量名 类型 default 值;

(2)、赋值

方法1:
set 局部变量名=值;      # 方式1
set 局部变量名:=值;    # 方式2
select @局部变量名:=值;  #方式3

方法2:
select 字段 into 变量名 from 表;  # 方式4,相当于将字段的值赋给变量

(3)、打印

select 局部变量名;

三、应用实例

1、声明两个变量并赋初始值,求和,并打印:

# 定义用户变量,在使用过程中变量前要加@符号
SET @m=1;
SET @n=2;
SET @sum=@m+@n;
SELECT @sum;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值