前言:
变量
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 语句中