变量
变量由系统提供的,不是用户自定义,属于服务器层面
系统变量
如果是全局变量,则需要加GLOBAL,如果是回话级别,则需要交SESSION,默认是SESSION
语法
查看所有的系统变量
show global |session variables;
查看满足条件的部分系统变量
show global | 【SESSION】variables like '%char%';
查看指定的某个系统变量
select @@global | 【SESSION】.系统变量名;
为某个系统变量赋值
#方式一
set global | 【SESSION】系统变量名=值;
#方式二
set @@global|【SESSION】.系统变量名=值;
全局变量
作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有的回话(l连接)有效,但不能跨重启
回话变量
作用域:仅仅针对于当前回话(连接)有效
自定义变量
用户变量
作用域:针对于当前会话有效,同于会话变量的作用域,应用在任何地方,也就是begin end里面或begin end 外面
声明并初始化
赋值操作符:=或:=
set @用户变量名=值;
set @用户变量名:=值;
select @用户变量名:=值;
赋值
方式一:
set @用户变量名=值;
set @用户变量名:=值;
select @用户变量名:=值;
方式二:
select 字段 into 变量名
from 表名;
查看
select @用户变量名;
局部变量
作用域:仅仅在定义它的begin end中有效
应用在begin end中的第一句话
声明
declare 变量名 类型;
declare 变量名 类型 default 值;
赋值
#方式一
set 局部变量名=值;
set 局部变量名:=值
select @局部变量名:=值;
#方式二
select 字段 into 局部变量名
from 表;
查看
select 局部变量名;
声明两个变量并赋初始值,求和
用户变量
set @a=1;
set @b=2;
set @sum=@a+@b;
select @sum;
局部变量
declare a int default 1;
declare b int default 2;
declare sum int;
set sum=a+b;
select sum;