• MySQL_Sql_打怪升级_进阶篇_进阶17: 变量


    进阶17: 变量

    17.1 变量介绍

    变量分类:

    系统变量:
    	全局变量
    	会话变量
    
    自定义变量:
    	用户变量
    	局部变量
    

    17.2 系统变量

    说明:变量由系统定义,不是用户定义,属于服务器层面
    注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别
    使用步骤:
    1、查看所有系统变量

    show global|【session】variables;
    

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

    show global|【session】 variables like '%char%';
    

    3、查看指定的系统变量的值

    select @@global|【session】系统变量名;
    

    4、为某个系统变量赋值
    方式一:

    set global|【session】系统变量名=值;
    

    方式二:

    set @@global|【session】系统变量名=值;
    

    17.2.1 全局变量

    作用域:针对于所有会话(连接)有效,但不能跨重启

    ①查看所有全局变量

    SHOW GLOBAL VARIABLES;
    

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

    SHOW GLOBAL VARIABLES LIKE '%char%';
    

    ③查看指定的系统变量的值

    SELECT @@global.autocommit;
    

    ④为某个系统变量赋值

    SET @@global.autocommit=0;
    SET GLOBAL autocommit=0;
    

    17.2.2 会话变量

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

    ①查看所有会话变量

    SHOW SESSION VARIABLES;
    

    ②查看满足条件的部分会话变量

    SHOW SESSION VARIABLES LIKE '%char%';
    

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

    SELECT @@autocommit;
    SELECT @@session.transaction_isolation;
    

    ④为某个会话变量赋值

    SET @@session.transaction_isolation='read-uncommitted';
    SET SESSION transaction_isolation='read-committed';
    

    17.3 自定义变量

    说明:变量由用户自定义,而不是系统提供的

    使用步骤:
    1、声明
    2、赋值
    3、使用(查看、比较、运算等)
    

    17.3.1 用户变量

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

    赋值操作符:=或:=
    ①声明并初始化

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

    ②赋值(更新变量的值)
    方式一:

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

    方式二:

    SELECT 字段 INTO @变量名
    FROM 表;
    

    ③使用(查看变量的值)

    SELECT @变量名;
    

    17.3.2 局部变量

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

    应用在 begin end中的第一句话

    ①声明

    DECLARE 变量名 类型;
    DECLARE 变量名 类型 【DEFAULT 值】;
    

    ②赋值(更新变量的值)

    方式一:

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

    方式二:

    SELECT 字段 INTO 具备变量名
    FROM 表;
    

    ③使用(查看变量的值)

    SELECT 局部变量名;
    

    17.3.3 示例说明

    案例:声明两个变量,求和并打印

    用户变量

    SET @m=1;
    SET @n=1;
    SET @sum=@m+@n;
    SELECT @sum;
    

    局部变量

    DECLARE m INT DEFAULT 1;
    DECLARE n INT DEFAULT 1;
    DECLARE SUM INT;
    SET SUM=m+n;
    SELECT SUM;
    

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

                  作用域		  定义位置		   语法
    用户变量	      当前会话		  会话的任何地方		   加@符号,不用指定类型
    局部变量	      定义它的BEGIN END中  BEGIN END的第一句话	   一般不用加@,需要指定类型
    

  • 相关阅读:
    你的程序员女孩「GitHub 热点速览 v.22.09」
    高手过招不用鼠标,一款超好用的跨平台命令行界面库
    程序员的情人节「GitHub 热点速览 v.22.07」
    火爆的文字游戏你玩了吗?「GitHub 热点速览 v.22.06」
    SpringBoot入门
    将Bean放入Spring容器中的五种方式
    retransformClasses代码增强摘要
    网路代理技术
    Linux版钉钉使用
    deepin 创建桌面图标
  • 原文地址:https://www.cnblogs.com/liych/p/13942558.html
Copyright © 2020-2023  润新知