Skip to content

MySQL变量详解与使用指南

Published:  at  04:27 AM

MySQL 变量

在 MySQL 中,变量用于 临时存储数据或控制数据库行为。根据来源和作用范围的不同,变量主要分为两大类:


一、变量分类概览

变量
├── 系统变量
│   ├── 全局变量(GLOBAL)
│   └── 会话变量(SESSION)
└── 自定义变量
    ├── 用户变量
    └── 局部变量

二、系统变量

1. 系统变量概念

系统变量 由 MySQL 服务器提供,用于控制数据库的运行行为,属于 服务器层面配置,用户不能自行创建,只能查看或修改已有变量。


2. 系统变量的类型

(1)全局变量(GLOBAL)

(2)会话变量(SESSION)


3. 查看系统变量

查看所有系统变量

-- 全局变量
SHOW GLOBAL VARIABLES;

-- 会话变量(SESSION 可省略)
SHOW SESSION VARIABLES;

按条件查询系统变量

SHOW GLOBAL VARIABLES LIKE 'char%';
SHOW SESSION VARIABLES LIKE 'char%';

查看指定系统变量

SELECT @@global.系统变量名;
SELECT @@session.系统变量名;

SESSION 关键字可省略,默认使用会话变量。


4. 修改系统变量

方式一:SET 语句

-- 修改会话变量
SET SESSION 系统变量名 = 值;

-- 修改全局变量
SET GLOBAL 系统变量名 = 值;

方式二:简写形式

SET @@session.系统变量名 = 值;
SET @@global.系统变量名 = 值;

5. 作用域说明


三、自定义变量

1. 自定义变量概述

自定义变量 由用户自行定义,使用灵活,常用于:


四、用户变量

1. 用户变量特点


2. 声明与初始化

用户变量 在声明时必须初始化,常见方式有三种:

SET @v1 = 20;
SET @v2 := 30;
SELECT @v3 := 40;

3. 赋值与更新

SET @v1 = 35;
SET @v1 := 50;
SELECT @v1 := 60;

使用查询结果赋值

SELECT 字段 INTO @变量名
FROM 表名;

查询结果必须是 单行单列


4. 使用(查看)用户变量

SELECT @v1;

五、局部变量

1. 局部变量特点


2. 声明局部变量

DECLARE 变量名 数据类型;

声明并初始化

DECLARE 变量名 数据类型 DEFAULT 值;

3. 局部变量赋值

SET 局部变量名 = 值;
SET 局部变量名 := 值;

使用查询结果赋值

SELECT 字段 INTO 局部变量名
FROM 表名;

4. 使用局部变量

SELECT 局部变量名;

六、用户变量与局部变量对比

对比项用户变量局部变量
是否需要声明否(赋值即创建)
是否需要 @
作用域当前会话BEGIN...END
使用场景普通 SQL存储过程、函数

七、小结


Suggest Changes

Previous Post
MySQL存储过程与函数详解
Next Post
MySQL视图的创建、修改与应用场景