1. 程式人生 > >SQL進階17-變數的宣告/使用(輸出)--全域性變數/會話變數--使用者變數/區域性變數

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.使用區域性變數實現加法