系統變數
系統定義好的變數,大部分時候使用者根本不需要使用系統變數。系統變數是用來控**務器表現的。如:autocommit,auto_increment_increment等。
① 檢視系統變數
--檢視所有變數
show variables;
--檢視範圍變數
show variables like '%變數名%';
修改系統變數
修改系統變數有兩種方式:會話級別和全域性級別。
會話級別
臨時修改,當前客戶端當次連線有效,關閉將會恢復預設值。
有說法稱為會話變數,屬於系統變數子集,區別與使用者變數!
set 變數名 = 變數值;
orset @@變數名 = 變數值;
示例如下:
set autocommit = 0;
set @@ autocommit = 0;
全域性級別
一次修改,永久生效(對所有客戶端都生效)。
set global 變數名 = 值;
示例如下:
set global autocommit = 1;
當前客戶端修改後需要關閉連線重新開啟,即可看到生效。
如果對方(其他)客戶端當前已經連線上伺服器,那麼當次修改無效,要退出重新登入才會生效。
④ 變數單位
不同的變數的單位不同,比如table_cache是指快取的表的個數,而key_buffer_size則是以位元組為單位,另外還有以頁或者百分比為單位的變數。
許多變數可以通過字尾制訂單位,比如1m表示一百萬位元組,在配置檔案中或者在命令列下有效。但是在使用set命令的時候,這些單位就無效,必須使用數字,單位為位元組。
比如:set @@session.sort_buffer_size = 1024*1024
或者set @@session.sort_buffer_size = 1048576
但是配置檔案中設定的時候就不能使用表示式
1 使用者變數介紹
使用者變數即使用者自己定義的變數,我們可以給使用者變數分配值,並且可用在任何可以正常使用標量表示式的地方。
引入使用者變數之前我們必須使用set語句或select語句來定義它,然後為它賦乙個值,否則變數就只有乙個空值。
使用者變數與連線有關。也就是說,乙個客戶端定義的變數不能被其它客戶端看到或使用。當客戶端退出時,該客戶端連線的所有變數將自動釋放。
2 使用者變數定義
set語句可用於向系統變數或使用者變數賦值,針對使用者變數的定義如下:
set @var_name = expr [, @var_name = expr] ...
也可使用select語句來定義:
select @var_name := expr [, @var_name = expr] ...
使用者變數:以"@"開始,形式為"@var_name",以區分使用者變數及列名。它可以是任何隨機的,復合的標量表示式,只要其中沒有列指定。
乙個變數名可以由當前字符集的數字字母字元和「_」、「$」和「.」組成。預設字符集是iso-8859-1 latin1;這可以用mysqld 的--default-character-set 選項更改字符集。
對於set,可以使用=或:=來賦值,對於select只能使用:=來賦值。、檢視使用者變數
檢視變數使用select語句
select @name;
mysql負變數 MySQL 設定變數的副作用
有時可以通過名稱推斷乙個變數的作用。例如,max heap table size的作用就行聽起來那樣 它指定隱式記憶體臨時表最大允許的大小。然而,命名的約定並不完全一樣,所以不能總是通過名稱來猜測乙個變數有什麼效果。讓我們來看一些常用的變數和動態修改它們的效果 key buffer size 設定這...
mysql環境變數中文 MySQL的環境變數
mysql的環境變數 伺服器變數 調整mysql的工作屬性,由mysql的配置檔案決定 狀態變數 mysql執行以後所輸出的自身統計資訊 在linux下檢視mysql的環境變數 1.獲取mysql客戶端幫助 usr local mysql bin mysql help v 幫助資訊中 是mysql的...
mysql如何定義變數 MySQL定義和變數賦值
變數可以在子程式 效能 儲存過程 匿名塊 宣告和使用。這些變數的範圍是在begin.end規劃。變數的定義 語法格式 declare var name var name data type default value var name為區域性變數的名稱 default value子句指定指定變數的預...