• SQL进阶17-变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量


    /*进阶17 变量
    系统变量:
        全局变量:
        会话变量:
        
    自定义变量:
        用户变量:
        局部变量:
    
    */
    /*
    #一: 系统变量
    #说明: 变量由系统提供,不是用户定义的,属于服务器层面
    #使用的语法
    
    #1/查看所有的系统变量,
    show global /[session] variables;
    
    2.查看满足条件的部分系统变量
    show global/[session] variables like '%char%';
    
    3.查看指定的某个系统变量的值
    select @@global/[session] .系统变量名;
    
    4.为某个系统变量赋值
    方式一:
        set global/[session] 系统变量名=值;
    方式二:
        set @@global/[session].系统变量名=值;
    
    注意:
        如果是全局级别,则需要加上global;
        如果是会话级别,则需要加上session ;【如果不写,默认是这个】
    */
    /*
    #2>> 会话变量
      作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效
    
    #① : 查看所有的会话变量
    SHOW  VARIABLES;    #547行
    SHOW SESSION VARIABLES;  #547行
    
    #② : 查看部分的会话变量
    SHOW VARIABLES LIKE '%char%';
    SHOW SESSION VARIABLES LIKE '%char%'; 
    
    */
    /*
    #2>> 会话变量
      作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效
    
      对比用户变量和局部变量:
                  作用域       定义和使用的位置           语法
       用户变量:   当前会话    会话中的任何地方           必须加@符号,不用限定类型
        
       局部变量:   begin end中  只能在begin end中,且      一般不用加@符号,需要限定类型
                     为第一句话
      
      
    */
    #1》 全局变量
        #① 查看所有的全局变量
    SHOW GLOBAL VARIABLES;
        #② 查看部分的全局变量
    SHOW GLOBAL VARIABLES LIKE 'character%';
        #③ 查看指定的全局变量
    SELECT @@global.autocommit;  #1
    
    #④: 为某个指定的全局变量赋值
    SET @@global.autocommit=0;   #0
    
    #2>> 会话变量
    /*
      作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效
    */
    
    #① : 查看所有的会话变量
    SHOW  VARIABLES;    #547行
    SHOW SESSION VARIABLES;  #547行
    
    #② : 查看部分的会话变量
    SHOW VARIABLES LIKE '%char%';
    SHOW SESSION VARIABLES LIKE '%char%'; 
    
    #③ : 查看指定的某个会话变量
         #select @@tx_isolation;  #不支持
    #select @@session.tx_isolation; #不支持查询隔离级别
    
    #④ : 为某个会话变量赋值
        #set @@tx_isolation='read-uncommitted'; #不支持更改隔离级别
        #SET session @@tx_isolation='read-uncommitted';
    
    #二: 自定义变量
    /*
        说明: 变量是用户自己进行定义的,不是由系统提供的;
        使用步骤: 声明/赋值/使用(查看/比较/运算等..)
            
    */
    
    #1.用户变量
        #作用域:针对当前会话(连接)有效,同于会话变量的作用域
    #赋值的操作符: =或:=
        #① 声明并初始化
        SET @用户变量名=值;
        SET @用户变量名:=值;
        SELECT @用户变量名:=值;
        
    #方式二:通过select into
        SELECT 字段 INTO 变量名
        FROM 表;
    #输出结果
        SELECT @num;
    
    #案例:
        SET @name='john';
        SET @name=100;
            #声明并初始化
        SELECT COUNT(*) INTO @num
        FROM employees;
    
        SELECT @num;
    #-----------------------------
     
     #2.局部变量 ------没办法实践!!实践错!!!!
    /*
        作用域:仅仅作用在定义它的begin end中有效
        应用在begin end中的第一句话
        
    */
    #① 声明
    DECLARE 变量名 类型;
    DECLARE 变量名 类型 DEFAULT 值;
    #① 赋值
        SET 局部变量名=值;
        SET 局部变量名:=值;
      SELECT @用户变量名:=值;    
       #方式二:通过select into
        SELECT 字段 INTO 局部变量名
        FROM 表;
    #③ 使用
    SELECT 局部变量名;
    # 案例---------------
    
    #1.使用用户变量实现加法
    SET @m=1;
    SET @n=2;
    SET @sum=@m+@n;
    SELECT @sum;
    
    #2.使用局部变量实现加法
  • 相关阅读:
    Android周学习Step By Step(6)Android的数据库SQLite
    Android周学习Step By Step(2)HelloWorld
    解决方案(.sln)文件
    浅谈测试(1)单元测试
    批量上传功能的实现
    分页控件AspNetPager的用法
    .net下验证码的简单实现
    window.alert重写实现友好的对话框(支持IE)
    网页上自定义运行和测试HTML脚本
    数据库行转列的sql语句(zt)
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9885061.html
Copyright © 2020-2023  润新知