mysql · 2019-12-26 0

MySQL变量

一、系统变量

系统变量分为全局变量,会话变量

变量由系统提供,不是用户定义

全局变量与会话变量区别

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 局部变量名;