前言
了解系统变量和自定义变量,了解全局变量和局部变量,它们是DBMS的重要属性。
一、系统变量
含义)系统提供,属于服务器层面
使用)
1)查看所有系统变量
SHOW GLOBAL |【 SESSION】VARIABLES;
2)查看满足条件的部分系统变量名
SHOW GLOBAL |【 SESSION】VARIABLES LIKE ‘ % CHAR %’;
3)查看指定系统变量名
select @@global|【session】.变量名;
4)为系统变量赋值
set global|【session】系统变量名 = value;
set @@global|【session】.系统变量名 = value;
变量类型)
1)全局变量
需加global
2)会话变量
默认,或加上session
作用域)全局作用系统,作用于每一个连接。局部作用于当前连接。
二、自定义变量
含义)用户自定义
使用步骤)声明、赋值、使用
1)声明并初始化
set @用户变量名 = 值;
set @用户变量名 := 值;
select @用户变量名 := 值;
2)赋值
set @用户变量名 = 值;
set @用户变量名 := 值;
select @用户变量名 := 值;
select 字段 into @用户变量名
From 表;
3)使用
select @用户变量名;
作用域)当前会话
1)用户变量
作用于当前连接
2)局部变量
A)作用域,作用于一个小范围。BEGIN 与 END之间。
B)声明
DECLARE 变量名 类型;
DECLARE 变量名 类型 default 值;
注:要求在第一句声明,且必须限定类型。
C)赋值
set 局部变量名 = 值;
set 局部变量名 := 值;
select @局部变量名 := 值;
select 字段 into 局部变量名;
D)使用
select 局部变量名;
三、案例
- 用户变量
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;
SELECT
SUM;
总结
1)系统变量,作用与所有session,但重启时会重置,所以没有写入文件。
2) 自定义,作用与当前session。
参考文献
[1] MySQL 尚硅谷