前言:

变量

1,系统变量 :全局变量,会话变量。
2,自定义变量 :用户变量,局部变量。


文章目录

  • 自定义变量
  • 用户变量
  • 局部变量


自定义变量

用户变量

作用域:针对于当前的会话(连接)有效同于会话变量的作用域 ,同于会话变量的作用域,应用在任何地方,也就是begin end 里面或begin end 外面

赋值的操作符: = 或 :=

1,声明并初始化

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

2,赋值(更新用户变量的值)

方式一:通过set 或者select

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

方式二:通过select into

select 字段 into @变量名 from 表;

第三步 : 使用(查看用户变量的值)

select @用户变量名;

案例:

声明并初始化

set @name = 'join';
set @name = 100;
set @count = 1;

赋值

select count(*) into @count from employees;

查看

select @count;

局部变量

作用域 :仅仅定义在它的begin end 中有效,应用在begin end 中的第一句话

1,声明

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

2,赋值

方式一:通过set 或者select

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

方式二:通过select into

select 字段 into 变量名 from 表;

3,使用

select 局部变量名;

对比用户变量和局部变量:

作用域

定义和使用的位置

语法

用户变量

当前会话

会话中的任何地方

必须加@符号,不用限定类型

局部变量

begin end中

只能在begin end 中 且为第一句话

一般不加@符号,需要限定类型

案例:声明两个变量并赋初始值,求和,并打印。

1,用户变量

set @m = 1;
set @n = 2;
set @sum = @m + @n;

2,局部变量

declare m int default 1;
declare n int default 2;
declare sum int;
set sum = m + n;
select sum;

局部变量会报错,因为没有在begin end 语句中