mysql之变量

mysql的本质是一种编程语言,需要很多变量来保存数据,mysql中很多的属性控制都是通过mysql中固有的变量来实现的

一、系统(全局)变量

系统内部定义的变量,对于所有的用户都有效
1、查看系统所有变量
show variables[like 'pattern']
在这里插入图片描述
在这里插入图片描述
2、mysql允许用户使用select查询系统变量的值
基本语法:select @@变量名
在这里插入图片描述
3、修改系统变量
有2种方式
(1)、局部修改(会话级别):只针对自己当前的客户端当次的连接有效。
基本语法:

set 变量名 = 新值;

在这里插入图片描述

(2)、全局修改:对所有的客户端,“所有时刻”都有效。
基本语法:

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

在这里插入图片描述
全局修改后,所有连接的客户端并没有发生改变,是因为全局修改只针对新客户端生效,正在连着的客户端无效
下面是新开的客户端
在这里插入图片描述
注意:如果想要修改本次连接对应的有效不能使用全局修改,只能使用会话级别修改(局部修改)

二、会话变量

会话变量也称为用户变量,会话变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效

定义用户变量: set @变量名 = 值;
在mysql中没有==符号,所有用=代替符号,为了能够使系统可以区分是赋值还是比较,特定增加一个变量的赋值符号: :=
也就是说可以这么 set @变量名 := 值;

mysql是专门存储数据的;允许将数据从表中取出存储到变量中;查询得到的数据必须只能是一行数据(一个变量对应一个字段值):mysql没有数组。

1、赋值且查看赋值过程:select@变量 1: = 字段1,@变量2 := 字段2 from数据表 where 条件
错误

2、只赋值不看过程:select 字段1,字段2...from 数据源 where 条件 into @变量1,变量2...
在这里插入图片描述
查看变量select @变量名字
在这里插入图片描述

三、局部变量

作用范围在begin和end的语句块之间。在该语句块里设置的变量,declare语句专门用于定义;

1、局部变量使用declare关键字声明,基本语法如下:declare 变量名 数据类型 [属性]

2、局部变量declare语句出现的位置一定是在begin和end之间(begin和end是在大型的语句块中使用如/函数/存储过程/触发器)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值