Mysql本质是一种编程语言,须要不少变量来保存数据。Mysql中有不少的属性控制都是经过mysql中固有的变量来实现的。mysql
系统内部定义的变量,系统变量针对全部用户(mysql客户端)有效sql
show variables;编程
Mysql容许用户使用select查询变量的数据值(系统变量)数组
基本语法:select @@变量名;编程语言
分为两种修改方式:函数
一、局部修改(会话级别):只针对当前本身客户端当次链接有效3d
基本语法:set 变量名 = 新值;blog
二、全局修改:针对全部客户端,“全部时刻”都有效变量
基本语法:set global 变量名 = 值;或者 set @@global.变量名 = 值;select
全局修改后,全部链接的客户端并无发现改变?全局修改只针对新客户端生效(正在连着的无效)
注意:若是想要本次链接对应的变量修改有效,那么不能使用全局修改,只能使用会话级别修(set 变量名 = 值;)
会话变量也称之为用户变量,会话变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效。
定义用户变量:set @变量名 = 值;
在mysql只由于没有比较符号 ==,因此使用=代替比较符号,有时候在赋值的时候,会报错;mysql为了不系统分不清是赋值仍是比较:特定增长一个变量的赋值符号: :=
赋值:set @变量名 := 值;
Mysql是专门存储数据的:容许将数据从表中取出存储到变量中:查询获得的数据只能是一行数据(一个变量对应一个字段值):mysql中没有数组
一、赋值且查看赋值过程:select @变量1: =字段1,@变量2 : = 字段2 from 数据表 where条件;
错误语法:就是由于使用=,系统会看成比较符号来处理
正确使用: :=
二、只赋值不看过程:select 字段1,字段2…from 数据源 where 条件 into @变量1,@变量2…;
做用范围在begin到end语句块之间。在该语句块里设置的变量,declare语句专门用于定义局部变量。
一、局部变量是使用declare关键字声明
二、局部变量declare语句出现的位置必定是在begin和end之间(begin end是在大型语句块中使用:函数/存储过程/触发器)
三、声明语法:declare 变量名 数据类型[属性];
declare res int default 0;
declare res int = 0;