1.变量
变量:
1.系统变量
1.1全局变量:
作用域:服务器每次启动将会为所有的全局变量赋初始值,针对所有的会话(连接)有效,但不能跨重启(即数据库重启后,又会恢复到默认值)
1.2会话变量
作用域:仅仅针对于当前会话(连接)有效
2.自定义变量:作用域:针对于当前会话(连接)有效。同于会话变量的作用域
2.1用户变量
2.2局部变量
1.系统变量:由系统提供,不是用户定义,属于服务器层面
使用语法:
1.查看所有的系统变量
1.查看所有的全局变量
show global variables;
2.查看会话变量:session可以省略,
show session variables;
2.查看满足条件的部分系统变量
show global variables like '%char%'
3.查看指定的某个系统变量的值
select @@global.系统变量名
select @@session.系统变量名
4.为某个系统变量赋值:【】的意思是可写可不写
set global|【session】系统变量名=值;
方式2:
set @@global|【session】.系统变量名=值;
注意点:
如果是全局界别,则需要加global,如果是会话级别,则需要加session,如果不写,则默认是session
2.用户的自定义变量:
作用域:当前会话,可以定义在会话的任何地方
使用:(查看,比较,运算等)
声明并初始化
1.set @用户变量名=值;
2.set @用户变量名:=值;
3.select @用户变量名:=值;
赋值(更新用户变量的值)
1.set @用户变量名=值;
2.set @用户变量名:=值;
3.select @用户变量名:=值;
4.select 字段 into 变量名 from 表;
3.局部变量
作用域:仅仅在定义它的begin end 中有效
应用在begin end中的第一句话
1.声明:
declare 变量名 类型;
declare 变量名 类型 default 值;
2.赋值:
1.set 局部变量名=值;
2.set 局部变量名:=值;
3.select @局部变量名:=值;
4.select 字段 into 局部变量名 from 表;
3.使用
select 局部变量名;
案例:声明两个变量并附初始值,求和,并打印
1.用户变量:
set @m=1;
set @n=2;
set @sum = @m+@n;
select @sum;
2.局部变量
BEGIN
DECLARE m INT DEFAULT 1;
DECLARE n INT DEFAULT 2;
DECLARE sum int;
SET sum=m+n;
END
select sum;