zoukankan      html  css  js  c++  java
  • 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的第一句话	   一般不用加@,需要指定类型
    

  • 相关阅读:
    【Linux】Gitlab库已损坏前端显示500错误解决方法
    【linux】gitlab 的安装以及数据迁移
    【PHP】图片转换为base64,经过post传输后‘+’会变成 ‘空格’
    【Mac】解决外接显示器时无法用键盘调节音量
    【Mac】 /usr/local 文件夹权限问题
    学妹问的Spring Bean常用配置,我用最通俗易懂的讲解让她学会了
    上海月薪 1w 和家乡月薪 5000 你选择哪?
    30岁码农的一次面试经历:不委屈自己
    写4条宝贵的经验,给初入职场的你
    Java 8 Optional 良心指南,建议收藏
  • 原文地址:https://www.cnblogs.com/liych/p/13942558.html
Copyright © 2011-2022 走看看