分類 系統變量: 全局變量 會話變量 自定義變量: 用戶變量 局部變量 說明 系統變量: 說明:變量由系統定義,不是用戶定義,屬於服務器層面 注意:全局變量須要添加global關鍵字,會話變量須要添加session關鍵字,若是不寫,默認會話級別 自定義變量: 說明:變量由用戶自定義,而不是系統提供的 使用步驟: 1、聲明 2、賦值 3、使用(查看、比較、運算等)
全局變量 做用域:針對於全部會話(鏈接)有效,但不能跨重啓 1、查看全部全局變量 SHOW GLOBAL VARIABLES; 2、查看知足條件的部分系統變量 SHOW GLOBAL VARIABLES LIKE '%char%'; 3、查看指定的系統變量的值 SELECT @@global.autocommit; 4、爲某個系統變量賦值 SET @@global.autocommit=0; SET GLOBAL autocommit=0; 會話變量 做用域:針對於當前會話(鏈接)有效 1、查看全部會話變量 SHOW [SESSION] VARIABLES; 2、查看知足條件的部分會話變量 SHOW [SESSION] VARIABLES LIKE '%char%'; 3、查看指定的會話變量的值 SELECT @@[session.]autocommit; 4、爲某個會話變量賦值 SET @@[session.]autocommit=0; SET [SESSION] autocommit=0;
用戶變量 做用域:針對於當前會話(鏈接)有效,做用域同於會話變量 1、聲明並初始化 SET @變量名=值; SET @變量名:=值; SELECT @變量名:=值; 2、賦值(更新變量的值) 方式一: SET @變量名=值; SET @變量名:=值; SELECT @變量名:=值; 方式二: SELECT 字段 INTO @變量名 FROM 表; 3、使用(查看變量的值) SELECT @變量名; 局部變量 做用域:僅僅在定義它的begin end塊中有效,應用在 begin end中的第一句話 1、聲明 DECLARE 變量名 類型; DECLARE 變量名 類型 [DEFAULT 值]; 2、賦值(更新變量的值) 方式一: SET 變量名=值; SET 變量名:=值; SELECT 變量名:=值; 方式二: SELECT 字段 INTO 變量名 FROM 表; 3、使用(查看變量的值) SELECT 變量名; 案例 1、聲明兩個變量,求和並打印 # 用戶變量 SET @m=1; SET @n=1; SET @sum=@m+@n; SELECT @sum; # 局部變量 DECLARE m INT DEFAULT 1; DECLARE n INT DEFAULT 1; DECLARE sum INT; SET sum=m+n; SELECT sum; 區別 做用域 定義位置 語法 用戶變量 當前會話 會話的任何地方 加@符號, 不用指定類型 局部變量 定義它的BEGIN END中 BEGIN END的第一句話 不加@, 須要指定類型