1. 程式人生 > >mysql中的變數詳解

mysql中的變數詳解

mysql中的變數分為系統變數和自定義變數

一、系統變數

1.說明:變數由系統定義,不是使用者定義,屬於伺服器層面

2.注意:系統變數包含全域性變數和會話變數,全域性變數需要新增global關鍵字,會話變數需要新增session關鍵字,如果不寫,預設會話級別
	使用步驟:
	1、檢視所有系統變數
	show global|【session】variables;
	2、檢視滿足條件的部分系統變數
	show global|【session】 variables like '%char%';
	3、檢視指定的系統變數的值
	select @@global|【session】系統變數名;
	4、為某個系統變數賦值
	方式一:
	set global|【session】系統變數名=值;
	方式二:
	set @@global|【session】系統變數名=值;

3.全域性變數:
	作用域:針對於所有會話(連線)有效,但不能跨重啟
	#①檢視所有全域性變數
	SHOW GLOBAL VARIABLES;
	#②檢視滿足條件的部分系統變數
	SHOW GLOBAL VARIABLES LIKE '%char%';
	#③檢視指定的系統變數的值
	SELECT @@global.autocommit;
	#④為某個系統變數賦值
	SET @@global.autocommit=0;
	SET GLOBAL autocommit=0;
	
4.會話變數
	作用域:針對於當前會話(連線)有效
	#①檢視所有會話變數
	SHOW SESSION VARIABLES;
	#②檢視滿足條件的部分會話變數
	SHOW SESSION VARIABLES LIKE '%char%';
	#③檢視指定的會話變數的值
	SELECT @@autocommit;
	SELECT @@session.tx_isolation;
	#④為某個會話變數賦值
	SET @@session.tx_isolation='read-uncommitted';
	SET SESSION tx_isolation='read-committed';

二、自定義變數

1.說明:變數由使用者自定義,而不是系統提供的,自定義變數包含使用者變數和區域性變數

2.使用步驟:
	1、宣告
	2、賦值
	3、使用(檢視、比較、運算等)
	
3.使用者變數
	作用域:針對於當前會話(連線)有效,作用域同於會話變數
	賦值操作符:=或:=
	①宣告並初始化
		SET @變數名=值;
		SET @變數名:=值;
		SELECT @變數名:=值;
	②賦值(更新變數的值)
		#方式一:
			SET @變數名=值;
			SET @變數名:=值;
			SELECT @變數名:=值;
		#方式二:
			SELECT 欄位 INTO @變數名
			FROM 表;
	③使用(檢視變數的值)
		SELECT @變數名;
		
4.區域性變數
	作用域:僅僅在定義它的begin end塊中有效
	應用在 begin end中的第一句話
	①宣告
		DECLARE 變數名 型別;
		DECLARE 變數名 型別 【DEFAULT 值】;
	②賦值(更新變數的值)
		#方式一:
			SET 區域性變數名=值;
			SET 區域性變數名:=值;
			SELECT 區域性變數名:=值;
		#方式二:
			SELECT 欄位 INTO 具備變數名
			FROM 表;
	③使用(檢視變數的值)
		SELECT 區域性變數名;