变量的分类
变量分为系统变量和自定义变量
系统变量
系统变量大部分时候用户不需要使用,系统变量是用来控制服务器的表现,如auto_increment_increment ,auto_commit 等,
示例
查看系统变量
show variables;--查看系统变量
select @@ 系统变量名 -- 查看单个系统变量
select @@ verion
修改系统变量
修改系统变量分为两种:会话级别,全局级别
- 会话级别:只对当前客户端的当前会话生效
set 系统变量名 = 值;
set @@系统变量名 = 值;
set autocommit = 0;
- 全局级别:对所有客户端永久生效
set global 变量名 = 值;
自定义变量
系统变量为了区分自定义变量,规定用户自定义变量必须使用一个@符号
新增语法:
set @自定义变量名=值;
set @name = 'jason'
查看语法:
select @变量名
select @name;
在mysql中,'=' 一般是比较符号,':=' 是赋值符号,一般赋值用':='
mysql 中允许通过select语句查询的结果给变量赋值
分为两种:
方案一:边赋值,边查看结果:
select @变量名 := 字段 from 数据源; -- 从字段列表中取出值赋值依次给变量,所以变量的值是列表中的最后一个值。
SELECT @name := name from `c_student`
屏幕快照 2017-08-16 上午11.14.19.png
SELECT @name
屏幕快照 2017-08-16 上午11.16.45.png
方案二:只有赋值,不看结果 ,但只能过去一条
select 字段列表 from 数据源 into 变量列表
select name,age from c_student where id = 2 into @name,@age;
所有自定义变量都是会话级别
网友评论