文章目录
系统变量自定义变量
变量分为两种:系统变量 vs 自定义变量
系统变量
系统定义好的变量:大部分的时候用户根本不需要使用系统变量:系统变量是用来控制数据库服务器的表现的:如autocommit、auto_increment等等查看系统变量
show variables; -- 查看所有的系统变量
show variables like 'pattern'; -- 查看部分指定的系统变量
查看系统变量具体指:任何一个有数据返回的内容都是由select查看
select @@变量名;
修改系统变量的值:会话级别的修改 vs 全局修改会话级别的修改:临时修改:当前客户端当次连接有效
set 变量名 = 值;
set @@变量名 = 值;
全局修改:一次修改永久生效:对所有客户端都有效:注意必须断开重连才会生效
set global 变量名 = 值;
断开重连:
自定义变量
自定义变量:为了区分系统变量:规定用户自定义变量必须使用一个@符号
set @变量名 = 值; -- 定义用户自定义变量
查看自定义变量的值
select @变量名;
在mysql中,很多地方将"="会默认的当做比较符号处理,mysql为了区分比较和赋值的概念:重新定义了一个新的赋值符号::=,即冒号等于set后面的"="理解为赋值操作:这里可以解释的通update语句中的为什么有set关键字了mysql允许从数据表获取数据,然后赋值给变量:两种方式方案一:赋值并查看结果
select @变量 := 字段, @变量 := 字段 ... from 数据源;
只有赋值不看结果: 要求很严格: 数据记录最多只允许获取一条: mysql不支持数组
select */字段列表 from 数据源 into @变量,@变量,...;
所有自定义变量都是会话级别的:当前客户端当次连接有效所有自定义变量都是用户级别的:所有数据库都可以使用:不区分数据库