MySQL笔记 变量
*分类:
系统变量:全局变量,会话变量
自定义变量:用户变量,局部变量
一.系统变量
说明:变量由系统提供,不是用户定义,属于服务器层面
使用的语法:
1.查看所有的系统变量
show global|【session】variables;
2.查看满足条件的部分系统变量
show global |【session】variables like "%char%";
3.查看指定的某个变量的值
select @@global|【session】.系统变量名;
4.为某个系统变量赋值
方式一:
set global|【session】系统变量名=值:
方式二:
set @@global|【session】.系统变量名=值;
注意:
如果是全局级别,需要加global,如果是会话级别,则需要加session,如果不写,则默认session
作用域:
全局变量:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效,但不能跨重启
会话变量:仅仅针对于当前会话(连接)有效
二.自定义变量
说明:变量是用户自定义的,不是由系统提供的
使用步骤:
声明
赋值
使用(查看,比较,运算等)
1.用户变量
作用域:针对于当前会话(连接)有效,同于会话变量的作用域,应用在任何地方,可以在begin end外面,也可以在begin end里面使用
1.声明并初始化
set @用户变量名=值;或
set @用户变量名:=值;或
select @用户变量名:=值;
2.赋值(更新用户变量的值):
方式一:通过set或select
set @用户变量名=值;或
set @用户变量名:=值;或
select @用户变量名:=值;
方式二:通过select into
select 字段 into 变量名
from 表;
3.使用:
例子:查看用户变量的值:
select @用户变量名;
案例:
#声明并初始化 set @name='john'; set @name=100; set #count=1; #赋值 select count(*) into @count from employees; #查看 select @count;
2.局部变量
作用域:仅仅在定义它的begin end中有效,应用在begin end中的第一句话
1.声明:
declare 变量名 类型;
declare 变量名 类型 default 值;
2.赋值:
方式一:通过set或select
set 局部变量名=值;或
set 局部变量名:=值;或
select @局部变量名:=值;
方式二:通过select into
select 字段 into 局部变量名
from 表;
3.使用:
例子:查看局部变量的值:
select 局部变量名;
3.用户变量和局部变量对比
用户变量:
作用域:当前会话
定义和使用的位置:任何地方
语法:必须加@符号,不用限定类型
局部变量:
作用域:begin end中
定义和使用的位置:只能在begin end 中,且为第一句话
语法:一般不用加@符号,需要限定类型
案例:声明两个变量并赋初始值,求和,并打印
#1.用户变量 set @m=1; set @n=2; set @sum=@m+@n; select @sum;
#2.局部变量 declare m int default 1; declare n int default 2; declare sum int; set sum=m+n; select sum;