1. 程式人生 > 實用技巧 >MySql的回顧十二:變數

MySql的回顧十二:變數

  這是個光榮而又艱鉅的任務!

  光榮在於平淡,艱鉅在於漫長!

  又是一個週末,又可以帶領各位小夥伴們繼續學習探索MySql的知識了,今天一起來學習變數,有人可能就會問變數!!!,MySql還有變數?emmmm其實學之前我也是這麼認為的,事實卻是....真的有!所有還是要學,來來來慢慢往下看,最好看的時候拉起你的客戶端工具,也試試,的確是有的,不騙你的。

系統變數:
全域性變數:整個伺服器
會話變數:客戶端的一次連線

自定義變數:
使用者變數
區域性變數

#一.系統變數
說明:變數由系統提供,不是使用者定義,屬於伺服器層面。
注意:
如果是全域性級別,則需要加GLOBAL,如果是會話級別,需要加SESSION,什麼都不寫預設是SESSION
使用的語法:#系統的變數不用定義直接使用。
SHOW GLOBAL
|【SESSION】 VARIABLES; 1.檢視所有的系統變數 SHOW GLOBAL VARIABLES; 檢視會話的 SHOW SESSION VARIABLES; 2.檢視滿足條件的部分系統變數 SHOW GLOBAL|【SESSION】 VARIABLES LIKE '%char%'; 3.檢視指定的某個系統變數的值 SELECT @@GLOBAL.系統變數名; SELECT @@SESSION.系統變數名; 4.為某個系統變數賦值 方式一: SET GLOBAL 系統變數名 = 值; SET SESSION 系統變數名 = 值; 方式二: SET @@GLOBAL.系統變數
=值; SET @@SESSION.系統變數=值; #1.全域性變數 #①檢視所有的全域性變數 SHOW GLOBAL VARIABLES;

#②檢視部分的全域性變數
SHOW GLOBAL VARIABLES LIKE '%char%';

#③檢視指定的全域性變數的值
SELECT @@global.autocommit;

#檢視隔離級別
SELECT @@tx_isolation;

#檢視某個指定的全域性變數賦值(注意中間的那個點)
#先修改
#再次檢視
SET @@GLOBAL.autocommit=0;
SELECT @@GLOBAL.autocommit;

重新開啟一個會話,再次查詢

#會話變數
作用域:僅僅針對於當前會話(連線)有效

#檢視所有的會話變數
SHOW SESSION VARIABLES;
SHOW VARIABLES;

#檢視部分的會話變數
SHOW VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%'; 

#③檢視指定的某個會話變數
SELECT @@tx_isolation;
SELECT @@SESSION.tx_isolation;

#為某個會話變數賦值
方式一:
SET @@SESSION.tx_isolation='read-uncommitted';
#檢視當前的隔離級額別的會話變數
SELECT @@SESSION.tx_isolation;

方式二:
SET SESSION tx_isolation='read-committed';
#檢視當前的隔離級額別的會話變數
SELECT @@SESSION.tx_isolation;

#二.自定義變數
說明:變數是使用者自定義的。
使用步驟:
宣告
賦值
使用(檢視,比較,運算等)

#1.使用者變數
作用域:針對當前會話(連線)有效,同於會話變數的作用域。
應用在任何地方,也就是begin end裡面或者begin end外面。

#宣告並初始化
方式一:
SET @使用者變數名=值;
方式二:
SET @使用者變數名:=值;
方式三:
SELECT @使用者名稱:=值;

#②賦值(更新使用者變數的值)
方式一:通過SET或SELECT
SET @使用者變數名=值;
SET @使用者變數名:=值;
SELECT @使用者名稱:=值;
#例:賦值.弱型別語言,第一次賦值字串varchar,第二次複製INT
SET @NAME='john';
SET @NAME=100;
方式二:通過SELECT INTO
SELECT 欄位 INTO @變數名
FROM 表;

#例:變數賦值
SET @COUNT=1;
SELECT COUNT(*) INTO @COUNT
FROM employees;
#使用(檢視某個使用者變數的值)
SELECT @使用者變數名;
#例:檢視變數
SELECT @COUNT;

#2.區域性變數
作用域:僅僅在定義它的begin end中有效。
應用在begin end中的第一句話!!!

#①宣告
DECLARE 變數名 型別;
DECLARE 變數名 型別 DEFAULT 值;

#②賦值
方式一:通過SET或者SELECT
SET 區域性變數名=值;
SET 區域性變數名:=值;
SELECT @區域性變數名:=值;

方式二:通過SELECT INTO
SELECT 欄位 INTO 區域性變數名
FROM 表;

#③使用
SELECT 區域性變數名;

對比使用者變數和區域性變數

#案例:宣告兩個變數並複製,求和,並列印
#使用者變數
SET @m=1;
SET @n=2;
SET @SUM=@m+@n;
SELECT @SUM;

變數到此結束,看到這裡的讀者們現在應該相信了MySql裡面的確是有變數的,那螢幕前的你一定就會好奇,搞了這些東西,那在哪用呢?

要不你猜猜?

其是在儲存過程裡面用的,MySql基礎回顧系列的最終回《儲存過程與流程控制》將在下篇文章帶領讀者徹底介紹完成。