MySQL初级-18-变量

本文最后更新于:2020年7月27日 下午

18.1 系统变量

18.1.1 介绍

  1. 系统变量包括全局变量和会话变量。
  2. 系统变量由系统定义,不是用户定义,属于服务器层面。
  3. 全局变量需要添加GLOBAL关键字,会话变量需要添加SESSION关键字,如果不写,默认变量为会话级别。
  4. 全局变量的作用域针对于所有会话(连接)有效,但不能跨重启。
  5. 会话变量的作用域只针对于当前会话(连接)有效。

18.1.2 查看所有系统变量

SHOW GLOBAL|SESSION VARIABLES;

18.1.3 查看满足条件的部分系统变量

SHOW GLOBAL|SESSION VARIABLES LIKE '%char%';

18.1.4 查看指定的某个系统变量的值

SELECT @@GLOBAL|SESSION.系统变量名;

18.1.5 为某个系统变量赋值

  1. 方式一

    SET GLOBAL|SESSION 系统变量名=值;
  2. 方式二

    SET @@GLOBAL|SESSION.系统变量名=值

18.2 自定义变量

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

18.2.1 用户变量

18.2.1.1 声明并初始化

SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值;

18.2.1.2 赋值(更新变量值)

方式一:

SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值;

方式二:

SELECT 字段名 INTO @用户变量名
FROM 表名;

18.2.1.3 使用

SELECT @用户变量名

18.2.2 局部变量

18.2.2.1 声明

DECLARE 局部变量名 类型 [DEFAULT 值];

18.2.2.2 赋值(更新变量值)

方式一:

SET @局部变量名=值;
SET @局部变量名:=值;
SELECT @局部变量名:=值;

方式二:

SELECT 字段名 INTO @局部变量名
FROM 表名;

18.2.2.3 使用

SELECT 局部变量名

18.2.3 用户变量与局部变量对比

  1. 用户变量的作用域为当前会话;而局部变量的作用域在BEGIN END中。
  2. 用户变量可以在会话中的任何地方定义和使用;局部变量只能在BEGIN END中,且为第一句话。
  3. 用户变量的声明不用指定类型;局部变量的声明必须指定类型。

版权声明:自由转载-非商用-非衍生-保持署名 Creative Commons BY-NC-ND 3.0 协议,转载请注明出处!

 目录