1.变量分类
1.1系统变量
1.2自定义变量
2.系统变量
2.1简要介绍
2.2系统变量-全局变量
2.3系统变量-会话变量
3.自定义变量
3.1自定义变量-用户变量
3.2自定义变量-局部变量
4.小结
1.变量分类
1.1系统变量
全局变量
会话变量
1.2自定义变量
用户变量
局部变量
2.系统变量
2.1简要介绍
系统变量,是指系统早已定义好的内置的变量
2.2系统变量-全局变量
2.2.1作用域
全局有效
2.2.2查看
查看所有:SHOW GLOBAL VARIABLES
条件查询:SHOW GLOBAL VARIABLES LIKE '%ge%'
查看某个变量的值:SELECT GLOBAL @@变量名
2.2.3赋值
1)set GLOBAL 变量名 = 值
2)set @@GLOBAL.变量名=值
2.2.4备注说明
服务器启动时所有的全局变量会有默认值。也就是说对全局变量进行修改后,mysql服务器重启后,值会回到默认值,如果想永久修改,需要修改配置文件。
2.2.5示例
1)
SHOW GLOBAL VARIABLES;
2)
SHOW GLOBAL VARIABLES LIKE '%connect%';
3)
SELECT @@GLOBAL.max_connections;
4)
SET @@GLOBAL.max_connections=10;
SELECT @@GLOBAL.max_connections;
在另一个会话查看,值同样变化了
SELECT @@GLOBAL.max_connections;
2.3系统变量-会话变量
2.2.1作用域
当前会话(连接)有效,下图左右是两个会话(连接)
2.2.2查看
查看所有:SHOW SESSION VARIABLES
条件查询:SHOW SESSION VARIABLES LIKE '%ge%'
查看某个变量的值:SELECT SESSION @@变量名
2.2.3赋值
set SESSION 变量名 = 值
set @@SESSION .变量名=值
不要SESSION 默认也是SESSION
2.2.4示例
1)
SHOW SESSION VARIABLES;
2)
SHOW VARIABLES LIKE '%connect%';
3)
SELECT @@auto_increment_offset;
4)
SET @@auto_increment_offset=2;
SELECT @@auto_increment_offset;
在另一个会话查询,值还是1,值没有变化,说明它的作用域只是当前会话
SELECT @@auto_increment_offset;
3.自定义变量
3.1自定义变量-用户变量
3.1.1作用域
当前会话(连接)有效,和系统变量的会话变量的作用域相同
3.1.2定义+赋值
用户变量在定义的时候必须赋值,定义变量和赋值的语法一样
1)set @变量名 = 值
2)set @变量名:=值
3)select @变量名:=值
4)select 字段 into @变量名 from 表
3.1.3查看
查看某个变量:select @变量名
3.1.4示例
1)
SET @asd=123;
2)
SELECT @asd;
在另外一个会话查看,没有值,说明它的作用域只是当前会话
SELECT @asd;
3.2自定义变量-局部变量
3.1.1作用域
BEGIN END中局部有效。局部变量只能在BEGIN END中使用,也就是在存储函数、方法中使用
3.2.2定义
DECLARE 变量名 类型
DECLARE 变量名 类型DEFAULT 默认值
3.2.3赋值
1)set 变量名 = 值
2)set 变量名:=值
3)select 变量名:=值
4)select 字段 into 变量名 from 表
4.小结
变量类型 | 作用范围 | 查看语法 | 定义语法 | 赋值语法 | 备注说明 | |
系统变量 全局变量 |
全局 |
查看所有:SHOW GLOBAL VARIABLES 条件查询:SHOW GLOBAL VARIABLES LIKE '%ge%' 查看某个变量的值:SELECT GLOBAL @@变量名 |
无 |
1)set GLOBAL 变量名 = 值 2)set @@GLOBAL.变量名=值 |
服务器启动时所有的全局变量会有默认值 也就是说对全局变量进行修改后 mysql服务器重启后,值会回到默认值 如果想永久修改,需要修改配置文件 |
|
系统变量 会话变量 |
当前会话(连接) | 查看所有:SHOW SESSION VARIABLES 条件查询:SHOW SESSION VARIABLES LIKE '%ge%' 查看某个变量的值:SELECT SESSION @@变量名 |
无 | 1)set SESSION 变量名 = 值 2)set @@SESSION .变量名=值 |
语句中不要SESSION 默认就是SESSION | |
自定义变量 用户变量 |
当前会话(连接) | select @变量名 |
1)set @变量名 = 值 |
1)set @变量名 = 值 2)set @变量名:=值 3)select @变量名:=值 4)select 字段 into @变量名 from 表 |
定义变量时必须赋值 定义和赋值语法一样 |
|
自定义变量 局部变量 |
BEGIN END中局部 | select 变量名 | 1)DECLARE 变量名 类型 2) DECLARE 变量名 类型DEFAULT 默认值 |
1)set 变量名 = 值 2)set 变量名:=值 3)select 变量名:=值 4)select 字段 into 变量名 from 表 |
只能在BEGIN END中使用 定义时需要指定类型 |
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?