• 九、变量的介绍


    变量分类

    一、系统变量

    说明:变量由系统提供,不是用户自定义,属于服务器层面

    使用的语法:

    1. 查看所有的系统变量

      1. show global | session variables;
    2. 查看满足条件的系统变量

      1. show global | session variables like '%参数%';
    3. 查看指定的某个系统值

      1. select @@系统变量名;
    4. 为某个具体的系统变量赋值

      1. set global | session 系统变量名 = 值;
      2. set @@global | session.系统变量名 = 值;

    (一)全局变量

    作用域:服务器每次启动将为所有的全局变量赋初始值,

    针对于所有的会话(连接)有效,但不能跨重启。

    ①查看所有全局变量

    show global variables;

    ②查看部分的全局变量

    show global variables like '%char%';

    ③查看指定的全局变量的值

    select @@global.autocommit;

    ④为某个指定的全局变量赋值

    set @@global.autocommit=0;

    (二)会话变量

    作用域:仅仅针对于当前的会话(连接)有效。

    ①查看所有会话变量

    show session variables;

    show variables;

    ②查看部分的会话变量

    show variables like '%char%';

    show session variables like '%char%';

    ③查看指定的会话变量的值

    select @@tx_isolation;

    select @@session.tx_isolation;

    ④为某个指定的会话变量赋值

    set @@session.tx_isolation='read-uncommitted';

    set session tx_isolation='read-uncommitted';

    二、自定义变量

    说明:变量是由用户自定义的

    使用步骤:

    声明

    赋值

    使用(查看、比较、运算等)

    (一)用户变量

    作用域:针对当前会话(连接)有效,同于【会话变量作用域】

    赋值操作符支持:=和:=

    使用步骤:

    ①声明并初始化

    set @用户变量名=值;

    set @用户变量名:=值;

    select @用户变量名:=值;

    ②赋值(更新用户变量的值)

    方式一:通过set或select

    set @用户变量名=值;

    set @用户变量名:=值;

    select @用户变量名:=值;

    方式二:通过select into

    select 字段 into 变量名 from 表;

    ③使用(查看用户变量的值)

    select @用户变量名;

    (二)局部变量

    作用域:仅仅在定义它的 begin end 中有效

    使用步骤:

    ①声明

    declare 变量名 类型;

    declare 变量名 类型 default 默认值;

    ②赋值

    方式一:通过set或select

    set 局部变量名=值;

    set 局部变量名:=值;

    select @局部变量名:=值;

    方式二:通过select into

    select 字段 into 局部变量名 from 表;

    ③使用

    select 局部变量名;

    (三)用户变量和局部变量对比

    作用域 定义和使用的位置 语法 类型
    用户变量 当前会话 会话中任何地方 必须加 @ 符号 不用限定
    局部变量 begin end中 只能在 begin end 中,且为第一句话 一般不用加 @ 符号除非select @局部变量名:=值;这种写法 需要限定

    (四)案例

    # 声明两个变量并赋初始值,求和,并打印 
    ############# 用户变量 ############# 
    set @m := 1;
    set @n := 2;
    set @sum := @m + @n;
    select @sum; 
    
  • 相关阅读:
    metadata
    java.net.SocketException: Permission denied 连网权限
    JUnit4 测试
    web生成工具
    Linux scp 两台服务器传输文件
    eclipse 无法导入项目
    html 流动字幕 marquee 标签 jquery
    libSVM 简易入门
    程序员创业指导书
    svm(libsvm)在文本分类中的应用
  • 原文地址:https://www.cnblogs.com/yliucnblogs/p/11520036.html
Copyright © 2020-2023  润新知