知识结构概览
变量:
1.系统变量
全局变量
会话变量
2.自定义变量
用户变量
局部变量
一、系统变量
说明:变量由系统提供,不是用户定义,属于服务器层面
注意:
如果是全局级别,则需要加global,
如果是会话级别,则需要加session,
如果不写,则默认是session级别。
使用的语法:
1.全局变量
1>.全局变量
作用域:
服务器每次启动将为所有的全局变量赋初值,
针对于所有的会话(连接)有效,但不能跨重启
1.查看所有的系统变量
SHOW GLOBAL|【SESSION】 VARIABLES;
2.查看满足条件的部分系统变量
SHOW GLOBAL|【SESSION】 VARIABLES LIKE '%关键字%'
3.查看指定的某个系统变量的值
SELECT @@GLOBAL|【SESSION】.系统变量名;
4.为某个系统变量赋值
方式一:
SET GLOBAL|【SESSION】系统变量名 = 值;
方式二:
SET @@GLOBAL|【SESSION】.系统变量名=值;
2.会话变量
2>.会话变量
作用域:
仅仅针对当前的会话(连接)有效
关键字SESSION 可省略
①查看所有的会话变量
show 【SESSION】 VARIABLES;
②查看部分的会话变量
show 【SESSION】VARIABLES like '%char%'
③查看指定的会话变量
方式一:select @@tx_isolation
方式二:select @@SESSION.tx_isolation
④为某个会话变量赋值
方式一:(举例设置隔离级别)
SET @@SESSION.tx_isolation='read-UNCOMMITTED'
方式二:
SET SESSION tx_isolation='read-UNCOMMITTED'
二、自定义变量
说明:
变量是用户自定义的,不是由系统定义的
使用步骤:
声明
赋值
使用(查看、比较、运算等)
1.用户变量
作用域:
针对于当前会话(连接)有效,同于会话变量的作用域
应用在任何地方,也就是begin end里面或者 BEGIN END 的外面
赋值的操作符:= 或 :=
使用步骤:
① 声明并初始化
SET @用户变量名=值;
或 SET @用户变量名:=值;
或 SELECT @用户变量的值:=值;
②赋值(更新用户变量的值)
方式一:通过set或select
SET @用户变量名=值;
或 SET @用户变量名:=值;
或 SELECT @用户变量的值:=值;
方式二: 通过select into
(从表中查询出来的一个值【不能是一组值】,赋值给变量)
SELECT 字段 INTO @变量名
FROM 表;
③使用(查看用户变量的值)
select @变量名
#案例:
#声明并初始化
SET @name='joho';
SET @count=1;
#赋值:
select count(*) INTO @count
FROM employees;
#查看
SELECT @count
2.局部变量
作用域:仅仅在定义它的begin end 中有效
应用在begin end 里面的第一句话!!!!
#①声明
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
#②赋值(更新用户变量的值)
方式一:通过set或select
SET 局部变量名=值;
或 SET 局部变量名:=值;
或 SELECT @用户变量的值:=值;
方式二: 通过select into
(从表中查询出来的一个值【不能是一组值】,赋值给变量)
SELECT 字段 INTO 局部变量名
FROM 表;
#③使用
select 局部变量名
3.对比用户变量和局部变量