变量分为两种:系统变量和自定义变量
系统变量
系统定义好的变量:大部分的时候用户根本不需要使用系统变量;系统变量是用来控制服务器表现的:如autocommit、auto_increment、increment等
查看系统变量
show variables; //查看所有系统变量
select @@变量名 //查看具体变量值
修改系统变量
修改系统变量分为两种方式:会话级别和全局级别
会话级别:临时修改,当前客户端当次连接有效
Set 变量名 = 值 //set @@变量名 = 值
全局级别:一次修改,永久生效(对所有客户端都生效)
set galobal 变量名 = 值;
如果其他客户端当前已经连上服务器,那么当次修改无效,要推出重新登录才会生效
自定义变量
定义变量
系统为了区分系统变量,规定用户自定义变量必须使用一个@符号
set @变量名 = 值;
自定义变量也是类似系统变量查看
Select @变量名;
在MySQL中,“=”会默认的当作比较符号处理(很多地方),MySQL为了区分比较和赋值的概念:重新定义了一个新的赋值符号::=
Mysql允许从数据表中回去数据,然后复制给变量:两种方式
方案1:边赋值,变查看结果
select@变量名:=字段名 from 数据源; //从字段中赋值给变量名,如果使用=会变成比较
方案2:只用赋值不看结果:要求很严格:数据记录最多置闰秀获取一条:sql>mysql不支持数组 Select字段列表 from 表名 into 变量列表
所有自定义的变量都是会话级别:当前客户端当此连接有效
所有自定义变量不区分数据库(用户级别)