最近整理了下關於mysql數據庫中關於變量的定義 ,感覺對這些知識的印象加深了許多,分享出來,希望大家可以來指出我的錯誤,共同提高技術
變量分為系統變量和自定義變量。
1.系統變量(系統提供的,不需要自定義)分為全局變量和會話變量。
2.自定義變量分為用戶變量和局部變量。
注意:和java中的變量一樣的,需要聲明賦值,再使用。
#系統變量(默認是session) 以系統變量為例,會話變量和系統變量類似 #作用范圍:服務器每一次啟動都會為全局變量賦默認初始值,如果修改了全局變量的值,只在本次服務的聲明周期內有效,重啟服務將恢復默認值 #查看系統變量 SHOW GLOBAL/SESSION VARIABLES #通過模糊查詢方式 SHOW GLOBAL/SESSION VARIABLES LIKE '%auto%' #查看指定的變量 SELECT @@GLOBAL/SESSION.系統變量名 #為變量賦值 SET GLOBAL/SESSION 系統變量名=值 SET @@GLOBAL/SESSION.系統變量名=值 #查看所有變量 SHOW GLOBAL VARIABLES; #查看指定的變量 SHOW GLOBAL VARIABLES LIKE '%tx%' #查看指定部分的變量 SELECT @@GLOBAL.autocommit SELECT @@tx_isolation #為指定的變量賦值 SET @@GLOBAL.autocommit=TRUE; SET GLOBAL autocommit=false; #自定義變量:遵循變量的聲明,賦值,使用 #1.用戶變量:針對一次有效的數據庫連接有效。 #聲明變量 SET @用戶變量名=值 SET @用戶變量:=值 SELECT @用戶變量:=值 #賦值方式1: SET @用戶變量名=值 SET @用戶變量:=值 SELECT @用戶變量:=值 SET @count_people=0; #賦值方式2 SELECT 字段 INTO @變量名 FROM 表(查詢的字段值只能有一個) SELECT COUNT(*) INTO @count_people1 FROM employee #查看變量 SELECT @count_people1; #2.局部變量:只在begin ~ end 中有效,而且只能使用在begin ~ end 中的第一行 #局部變量聲明: #DECLARE 變量名稱 類型; #DECLARE 變量名稱 類型 DEFAULT 默認值; #賦值1 SET 局部變量名=值; SET 局部變量名:= 值; #賦值2 SELECT 字段1,字段2 INTO 局部變量名1,局部變量名2 FROM 表(查詢的字段只能是一個)