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.使用局部變量實現加法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM