MySQL 變數的總結

2021-09-25 22:19:30 字數 1709 閱讀 3281

本文從全域性變數、會話變數、使用者變數三個方面說明

在 mysql 啟動時,會根據配置檔案以及內建預設選項,賦予所有全域性變數初始值,修改全域性變數會影響所有的客戶端連線。

show global variables;
說明:一般不用這個方法,因為檢視變數都是有針對性的,檢視所有變數不大有意義。

show global variables like '%key%';
一般是通過萬用字元 % 進行模糊查詢

select @@global.變數名;
說明:此方法也是很少用,因為沒有人刻意記住某些變數名,而且這個方法只能查詢乙個值。

set global 變數名 = 值;
set @@global.變數名 = 值;
說明:以上兩種方法均可行,但後者在輸入上甚至需要鍵入兩個「@」,想必也不會有人刻意用這個。

在客戶端與 mysql 伺服器建立連線的時候,會維護乙個會話,該會話有自己獨特的配置引數;

如果連線者沒有做任何修改,那麼,這個引數依然保持與剛連線時的全域性變數一致;

一旦會話結束,會話變數也就不存在了;

show [session] variables;
說明:與 global 不同,session 是預設值,通常一般不刻意寫。以下出現的 也表示可有可無。

show [session] variables like '%key%';
select @@[session.]變數名;
說明:同上,session 都是可以省略不寫的,但幾乎不會有人用這個命令。

set [session] 變數名 = 值;
set @@[session.]變數名 = 值;
說明:以上兩個方法均可行,通常用前者,且 session 常規省略。

使用者變數作用域與會話變數完全沒有區別,大概只是為了使用者能自定義變數而產生的;

select @變數名;
set @變數名 = 值;
set @變數名 := 值;
select @變數名 := 值;
說明:僅通過乙個 @ 表示;

這些命令都有宣告且賦值的作用,但後兩者甚至需要輸入乙個冒號":",想必很少有人使用。

select 《值》 into @變數名

from 表;

說明:此方法也可以賦值

區域性變數作用域很小,一般用於儲存過程中,類似程式語言的函式變數概念。

區域性變數不像其他變數那麼隨意,它需要規定型別。

declare 變數名 型別;
如果需要宣告並初始化則可以:

declare 變數名 型別 default 值;
set 變數名 = 值;
set 變數名 := 值;
select @變數名 := 值;

mysql變數使用總結

set語句的學習 使用select定義使用者變數的實踐 將如下語句改成select的形式 set var select sum amount from penalties 我的修改 select var select sum amount from penalties 我這樣改,雖然是可以的。但是,...

mysql變數使用總結

set語句的學習 使用select定義使用者變數的實踐 將如下語句改成select的形式 set var select sum amount from penalties 我的修改 select var select sum amount from penalties 我這樣改,雖然是可以的。但是,...

mysql變數使用總結

set語句的學習 使用select定義使用者變數的實踐 將如下語句改成select的形式 set var select sum amount from penalties 我的修改 select var select sum amount from penalties 我這樣改,雖然是可以的。但是,...