变量分为系统变量和自定义变量

系统变量

说明:变量由系统提供,不是用户定义,属于服务器层面
全局变量作用域: 服务器每次启动将所有的全局变量赋值。
session变量作用域: 在每个session中有效

全局变量

查看所有系统变量
  1. show global|[session] variables;

查看满足条件的部分系统变量

show global|[session] variables like '%关键词%'

查看具体的某个系统变量的值

select @@系统变量名;
-- eg
select @@log_bin;

select @@global.变量名;
select @@session.变量名;

为某个系统变量设值

set global|[session] 系统变量名 = 值;
-- 或者
set @@global|[session].系统变量名 = 值;

session变量

操作几乎和之前一样

用户变量

作用域:针对当前会话(连接有效,同于会话变量的作用域)

声明和赋值

赋值的操作符: = 或 :=

set @用户变量名=值;或
set @用户变量名:=值;或
select @用户变量名:=值;

赋值并使用

set @count = 0;
slect count(*) into @count
from emplyees
select @count;

局部变量

作用域:在begin,end中生效

声明

declare 变量名 类型;
declare 变量名 类型 DEFAULT 值;

赋值

方式一:通过set或select
set 局部变量=值;或
set 局部变量名 := 值 或
select 局部变量名 := 值
方式二:通过select into
select 字段 into 局部变量名
from 表;

使用

select 局部变量名;

举例

-- 用户变量
set @m = 1;
set @n = 1;
set @sum = @m+@n;
select @sum;

-- 局部变量