变量类型:
1、系统变量:全局变量 、会话变量
2、自定义变量: 用户变量、局部变量
一:系统变量
说明:变量由系统提供,不是用户定义,属于服务器层面。
注意:如果是全局级别,则需要加global,如果是会话级别,则需要加session,如果不写,则默认session
使用的语法:
查看所有的系统变量
SHOW GLOBAL | SESSION VARIABLES;
查看满足条件的部分系统变量
SHOW GLOBAL | SESSION VARIABLES LIKE '%char%';
查看指定的某个系统变量的值
select @@global | session 系统变量名;
为某个系统变量赋值
#方式一
set global | session 系统变量名 = 值;
#方式二
set @@global | session 系统变量 = 值;
二:全局变量
作用域:服务器每次启动将为所有的全局变量赋初始值,针对所有的会话(连接)有效,但不能跨重启
查看所有的全局变量
SHOW GLOBAL VARIABLES;
查看部分的全局变量
SHOW GLOBAL VARIABLES LIKE '%char%';
查看指定的全局变量的值
SELECT @@GLOBAL.autocommit;
SELECT @@tx_isolation;
为某个指定的全局变量赋值
SET @@GLOBAL.autocommit = 0;
三:会话变量
作用域:仅仅针对当前会话(连接)有效
查看所有的会话变量
SHOW VARIABLES;
SHOW SESSION VARIABLES;
查看部分的会话变量
SHOW VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%';
查看指定的某个会话变量
SELECT @@tx_isolation;
SELECT @@SESSION.tx_isolation;
为某个会话变量赋值
#方式一
SET @@tx_isolation = 'read-COMMITTED';
#方式二
SET SESSION.tx_isolation = 'read-COMMITTED';
四:自定义变量
说明:变量是用户自定的,不是系统的。
自定义变量使用步骤:
- 声明
- 赋值
- 使用(查看,比较,运算等)
作用域:针对于当前会话(连接)有效,同于会话变量的作用域,应用在任何地方,也就是begin end里面或begin end外面
自定义变量赋值的操作符 =或 :=
声明并初始化
set @用户变量名 = 值;
#或
set @用户变量名 := 值;
#或
select @用户变量名 := 值;
赋值(更新用户变量的值)
#方式一:通过set或select
set @用户变量名 = 值;
#或
set @用户变量名 := 值;
#或
select @用户变量名 := 值;
#方式二:通过select或into
select 字段 into 变量名 from 表;
使用(查看用户变量的值)
select @用户变量名;
案例:
声明并初始化
set @name='john';
set @name=100;
set @count=1;
赋值
select count(*) into @count from employees;
查看
select @count;
五:局部变量
作用域:仅仅在定义它的begin end 中生效
应用在begin end
中的第一句话
声明
declare 变量名 类型;
declare 变量名 类型 default 值;
赋值
# 方式一:通过set或select
set 局部变量名 = 值;
#或
set 局部变量名 := 值;
#或
select @局部变量名 := 值;
# 方式二:通过select into
select 字段 into 局部变量名 from 表;
使用:
select 局部变量名:
对比局部变量和用户变量
案例:声明两个变量并赋初始化值,求和,并打印
#用户变量
set @m=1;
set @n=2;
set @sum=@m+@n;
作者:joker.liu 创建时间:2022-10-27 08:48
最后编辑:admin 更新时间:2022-12-27 14:12
最后编辑:admin 更新时间:2022-12-27 14:12