一、系统变量
系统变量分为全局变量,会话变量
变量由系统提供,不是用户定义
全局变量与会话变量区别
global 表示全局变量,session 表示会话变量,如果不加 globle 和 session,则是会话变量
全局变量:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话有效,但不能跨重启
会话变量:仅仅针对于当前会话有效
1.查看所有系统变量
show global variables;
show variables;
show session variables;
2.查看满足条件的部分系统变量
show global variables like '%char%';
show session variables like '%char%';
3.查看指定的某个系统变量的值
@@系统变量名,表示会话变量
select @@global.系统变量名;
select @@session.系统变量名;
4.为某个系统变量赋值
方式一:
set global 系统变量名 = 值;
set session 系统变量名 = 值;
方式二:
set @@global.系统变量名 = 值;
set @@session.系统变量名 = 值;
二、自定义变量
自定义变量分为用户变量,局部变量
变量是用户自定义的,不是由系统的
用户变量与局部变量区别
用户变量:针对于当前会话(连接)有效,同于会话变量的作用域,应用在任何地方,也就是begin end里面或begin end外面
局部变量:仅仅在定义它的begin end中有效,应用在begin end中的第一句话
1.用户变量
1) 声明并初始化
set @用户变量名 = 值;
set @用户变量名 := 值;
select @用户变量名 := 值;
2)赋值(更新用户变量的值)
方式一:通过set或select
set @用户变量名 = 值;
set @用户变量名 := 值;
select @用户变量名 := 值;
方式二:通过select into
select 字段 into @变量名 from 表;
3) 使用(查看用户变量的值)
select @变量名;
2.局部变量
1) 声明
declare 变量名 类型;
declare 变量名 类型 default 值;
2) 赋值
方式一:通过set或select
set 局部变量名 = 值;
set 局部变量名 := 值;
select @局部变量名 := 值;
方式二:通过select into
select 字段 into 局部变量名 from 表;
3) 使用
select 局部变量名;