MySQL 变量的总结

本文从全局变量、会话变量、用户变量三个方面说明

 

全局变量


在 MySQL 启动时,会根据配置文件以及内置默认选项,赋予所有全局变量初始值,修改全局变量会影响所有的客户端连接。

 

显示所有全局变量

show global variables; 

说明:一般不用这个方法,因为查看变量都是有针对性的,查看所有变量不大有意义。

 

模糊查询全局变量

show global variables like '%key%';

一般是通过通配符 % 进行模糊查询

 

查询指定全局变量

select @@global.变量名;

说明:此方法也是很少用,因为没有人刻意记住某些变量名,而且这个方法只能查询一个值。

 

设置全局变量

set global 变量名 = 值;
set @@global.变量名 = 值;

说明:以上两种方法均可行,但后者在输入上甚至需要键入两个“@”,想必也不会有人刻意用这个。

 

会话变量


在客户端与 MySQL 服务器建立连接的时候,会维护一个会话,该会话有自己独特的配置参数;

如果连接者没有做任何修改,那么,这个参数依然保持与刚连接时的全局变量一致;

一旦会话结束,会话变量也就不存在了;

 

查看会话变量

show [session] variables;

说明:与 global 不同,session 是默认值,通常一般不刻意写。以下出现的 [] 也表示可有可无。

 

模糊查询会话变量

show [session] variables like '%key%';

 

查询指定会话变量

select @@[session.]变量名;

说明:同上,session 都是可以省略不写的,但几乎不会有人用这个命令。

 

设置会话变量

set [session] 变量名 = 值;
set @@[session.]变量名 = 值;

说明:以上两个方法均可行,通常用前者,且 session 常规省略。

 

用户变量


用户变量作用域与会话变量完全没有区别,大概只是为了用户能自定义变量而产生的;

 

查询用户变量

select @变量名;

 

设置用户变量

SET @变量名 = 值;
SET @变量名 := 值;
SELECT @变量名 := 值;

说明:仅通过一个 @ 表示;

这些命令都有声明且赋值的作用,但后两者甚至需要输入一个冒号":",想必很少有人使用。

 

SELECT <值> INTO @变量名
FROM 表;

说明:此方法也可以赋值

 

局部变量


局部变量作用域很小,一般用于存储过程中,类似程序设计语言的函数变量概念。

 

声明局部变量

局部变量不像其他变量那么随意,它需要规定类型。

DECLARE 变量名 类型;

如果需要声明并初始化则可以:

DECLARE 变量名 类型 DEFAULT 值;

 

赋值局部变量

SET 变量名 = 值;
SET 变量名 := 值;
SELECT @变量名 := 值;

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罐装面包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值