变量概括图如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190531094344542.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTUyMjQ1,size_16,color_FFFFFF,t_70)
自定义变量
自定义变量:分为局部变量和用户变量
定义:见名知意即是用户自定义的变量
注:有自定义变量是由用户自定的变量,因此在使用之前需要用用户声明赋值才可以使用。
使用步骤:声明—>赋值 —> 使用(查看、比较、运算等)
局部变量
作用域:仅仅在它定义的begin end中有效
(应用在begin end 中且必须放在begin end中的第一句话)
使用步骤:
① 声明
Declare 变量名 类型; 或者
Declare 变量名 类型 default 值;
②赋值(更新用户变量的值)
方法一:通过set或select
Set 局部变量名= 值; 或
set 局部变量名:=值; 或
select @局部变量名:=值;
方法二:通过select into
Select 字段 into 局部变量名 From 表;
② 使用
Select 局部变量名;
用户变量
作用域:针对于当前会话(连接)有效,同于会话变量的作用域
(用户变量可以应用在任意地方:begin end里面或者begin end外面都可以)
① 声明并初始化
方法一:Set @用户变量名= 值;
方法二:set @用户变量名:=值;
方法三:select @用户变量名:=值;
② 赋值(更新用户变量的值)
方法一:通过set或select
Set @用户变量名= 值; 或
set @用户变量名:=值; 或
select @用户变量名:=值;
案例:
Set @name = ‘join’;
Set @name 100;
方法二:通过select into
Select 字段 into 变量名
From 表;
(这里是查询表中的一个字段值并赋值给变量)
案例:
Set @number = 1;
Select count(*) into @number from students;
③ 使用(查看用户变量的值)
Select @用户变量名;
案例:select @number;
用户变量和局部变量的区别
作用域 | 定义和使用的位置 | 语法 | |
---|---|---|---|
用户变量 | 当前会话 | 会话当中的任何地方 | 必须加@;不需要限定类型 |
局部变量 | Begin end中 | Begin end中 | 一般不需要加@;需要限定类型 |
综合案例:声明两个变量并赋初始值,求和并打印
-
用户变量
Set @num1 = 1; Set @num2 = 2; Set @sum = @num1 + @num2; Select @sum;
-
局部变量
begin Declare num1 int default 1; Declare num2 int default 2; Declare sum int; Set sum = num1 + num2; Select sum; End
总结: 自定义变量之局部变量和用户变量的比较:
自定义变量的使用步骤:声明—>赋值 —> 使用(查看、比较、运算等)
自定义变量 | 声明 | 赋值 | 使用 |
---|---|---|---|
局部变量 | Declare 变量名 类型 【default 值;】 | set 变量名 = 值; 或者 set 变量名 := 值 ;或者select @变量名:=值; 或者 Select 字段 into 变量名 From 表; | Select 变量名; |
用户变量 | set 变量名 = 值; 或者 set 变量名 := 值 ;或者select @变量名:=值; | set 变量名 = 值; 或者 set 变量名 := 值 ;或者select @变量名:=值; 或者 Select 字段 into 变量名 From 表;Select @变量名; | select 变量名; |