一、变量
系统变量:
全局变量:
作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话和连接有效,但不能跨重启,如果更改了系统变量全局变量,重启后所有的变量仍然会重新赋初始值
会话变量:
作用域:仅针对于当前会话连接有效
自定义变量:
用户变量
局部变量
二、系统变量
变量由系统提供,不是用户定义,属于服务器层面
-- 1、查看会话全部系统变量 show session variables; -- 2、查看全局的全部系统变量 show global variables; -- 3、查看满足条件的部分系统变量(【session】表示该部分可以省略不写) show global| 【session】 variables like '%char%'; -- 4、为某个系统变量赋值 方式一: set global | 【session】 系统变量名=值; 方式二: set @@global | 【@@session】.系统变量名=值; set @@系统变量名=值; -- 5、查看指定系统变量 select @@global | 【@@session】.系统变量名;
注:
如果是全局级别,则需要加global,如果是会话级别,则需要加session,如果不写,则默认session
三、自定义变量
变量是用户自定义的,不是由系统已经初始化生成的
使用步骤:
声明
赋值
使用(查看、比较、运算等)
1、用户变量
作用域:针对于当前会话(连接)有效,同于会话变量的作用域
可以应用在任何地方,也就是begin end里面或begin end外面
赋值操作符:=或:=(select 初始化必须使用:=)
声明并初始化:
set @用户变量名=值; 或
set @用户变量名:=值; 或
select @用户变量名:=值;
赋值(更新用户变量的值)
方式一:通过set或select
set @用户变量名=值; 或
set @用户变量名:=值; 或
select @用户变量名:=值;
方式二:通过select into
select 字段 into @用户变量名 from 表;(将字段值赋值给变量)
使用(查看用户变量的值)
select @用户变量名;
2、局部变量
作用域:仅仅在定义他的begin end中有效
应用在begin end的第一句话!!!!
声明:
declare 变量名 类型;
declare 变量名 类型 default 值;
赋值:
方式一:通过set或select
set 局部变量名=值; 或
set 局部变量名:=值; 或
select @局部变量名:=值;
方式二:通过select into
select 字段 into 局部变量名 from 表;(将字段值赋值给变量)
使用:
select 局部变量名;
-- 声明两个变量并赋初始值,求和,并打印 -- 1、用户变量 set @a='1'; set @b='2'; set @sum=@a+@b; select @sum; -- 2、局部变量 declare a int default 1; declare b int default 2; declare sum int; set sum=a+b; select sum;