变量

202062

17:23

系统变量:

全局变量

会话变量

自定义变量:

用户变量

局部变量

1、系统变量:

由系统提供,不需要用户定义属于服务器层面

语法:

  • 查看所有系统变量
    • Show global |session】 variables;
  • 查看满足条件的部分系统变量
    • Show global |【session】varables like '%char%';
  • 查看指定的某个系统变量的值
    • Select @@global |【session】.系统变量名;
  • 为某个系统变量赋值
    • 方式1:set global |【session】系统变量名 = 值
    • 方式2: set @@global 【session】.系统变量名 = 值;

注意:如果是全局级别,需要加global ,如果是会话级别,需要加session

1)全局变量

作用域:,每次服务器启动将作为全局变赋初始值,针对所有的会话有效,但是不能跨重启

  • 查看所有系统变量
    • Show global |session】 variables;
  • 查看满足条件的部分系统变量
    • Show global |【session】varables like '%char%';
  • 查看指定的某个系统变量的值
    • Select @@global |【session】.系统变量名;
  • 为某个系统变量赋值
    • 方式1:set global |【session】系统变量名 = 值
    • 方式2: set @@global 【session】.系统变量名 = 值;

2)会话变量

作用域:只针对当前会话

  • 查看所有系统变量
    • Show session variables;
  • 查看部分的会话变量
    • Show session variables like '%char%';
  • 查询指定的变量
    • Show @@ session .transcation_isolation;
  • 为某个会话变量赋值

    方式一:set 或select

    Set @用户变量名=值;或

    Set @用户变量名 :=; 或

    Select @用户变量名 :=值;

    方式二:通过select into

    Select 字段 into 变量名

    from 表;

对比用户变量和局部变量:

作用域 定义和使用的位置 语法

用户变量 当前会话 定义会话的任何地方 必须加@符号,不应限定类型

局部变量 begin end中 只能在begin end 中,并且为第一句话 一般不用加@符号,需要限定类型

2、局部变量

变量的作用域仅限于定义中的begin end中有效,

  • 声明

    Declare 变量 类型 约束条件

案例

   

Delimiter $ #改变结束符(只限本次会话)

Create procedure myv1() #创建存储过程

Begin #开始标志

Declare a int default 0 # 创建本次会话的变量 a int 类型默认值0

   

End$ #结束标志

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

  

原文地址:https://www.cnblogs.com/yuknight/p/13048408.html