1 #變數 2 /* 3 系統變數: 4 全局變數 5 會話變數 6 7 自定義變數: 8 用戶變數 9 局部變數 10 11 */ 12 #一、系統變數 13 /* 14 說明:變數由系統定義,不是用戶定義,屬於伺服器層面 15 註意:全局變數需要添加global關鍵字,會話變數需要添加sessi ...
1 #變數 2 /* 3 系統變數: 4 全局變數 5 會話變數 6 7 自定義變數: 8 用戶變數 9 局部變數 10 11 */ 12 #一、系統變數 13 /* 14 說明:變數由系統定義,不是用戶定義,屬於伺服器層面 15 註意:全局變數需要添加global關鍵字,會話變數需要添加session關鍵字,如果不寫,預設會話級別 16 使用步驟: 17 1、查看所有系統變數 18 show global|【session】variables; 19 2、查看滿足條件的部分系統變數 20 show global|【session】 variables like '%char%'; 21 3、查看指定的系統變數的值 22 select @@global|【session】系統變數名; 23 4、為某個系統變數賦值 24 方式一: 25 set global|【session】系統變數名=值; 26 方式二: 27 set @@global|【session】系統變數名=值; 28 29 */ 30 #1》全局變數 31 /* 32 作用域:針對於所有會話(連接)有效,但不能跨重啟 33 */ 34 #①查看所有全局變數 35 SHOW GLOBAL VARIABLES; 36 #②查看滿足條件的部分系統變數 37 SHOW GLOBAL VARIABLES LIKE '%char%'; 38 #③查看指定的系統變數的值 39 SELECT @@global.autocommit; 40 #④為某個系統變數賦值 41 SET @@global.autocommit=0; 42 SET GLOBAL autocommit=0; 43 44 #2》會話變數 45 /* 46 作用域:針對於當前會話(連接)有效 47 */ 48 #①查看所有會話變數 49 SHOW SESSION VARIABLES; 50 #②查看滿足條件的部分會話變數 51 SHOW SESSION VARIABLES LIKE '%char%'; 52 #③查看指定的會話變數的值 53 SELECT @@autocommit; 54 SELECT @@session.tx_isolation; 55 #④為某個會話變數賦值 56 SET @@session.tx_isolation='read-uncommitted'; 57 SET SESSION tx_isolation='read-committed'; 58 59 #二、自定義變數 60 /* 61 說明:變數由用戶自定義,而不是系統提供的 62 使用步驟: 63 1、聲明 64 2、賦值 65 3、使用(查看、比較、運算等) 66 */ 67 68 #1》用戶變數 69 /* 70 作用域:針對於當前會話(連接)有效,作用域同於會話變數 71 */ 72 73 #賦值操作符:=或:= 74 #①聲明並初始化 75 SET @變數名=值; 76 SET @變數名:=值; 77 SELECT @變數名:=值; 78 79 #②賦值(更新變數的值) 80 #方式一: 81 SET @變數名=值; 82 SET @變數名:=值; 83 SELECT @變數名:=值; 84 #方式二: 85 SELECT 欄位 INTO @變數名 86 FROM 表; 87 #③使用(查看變數的值) 88 SELECT @變數名; 89 90 91 #2》局部變數 92 /* 93 作用域:僅僅在定義它的begin end塊中有效 94 應用在 begin end中的第一句話 95 */ 96 97 #①聲明 98 DECLARE 變數名 類型; 99 DECLARE 變數名 類型 【DEFAULT 值】; 100 101 102 #②賦值(更新變數的值) 103 104 #方式一: 105 SET 局部變數名=值; 106 SET 局部變數名:=值; 107 SELECT 局部變數名:=值; 108 #方式二: 109 SELECT 欄位 INTO 具備變數名 110 FROM 表; 111 #③使用(查看變數的值) 112 SELECT 局部變數名; 113 114 115 #案例:聲明兩個變數,求和並列印 116 117 #用戶變數 118 SET @m=1; 119 SET @n=1; 120 SET @sum=@m+@n; 121 SELECT @sum; 122 123 #局部變數 124 DECLARE m INT DEFAULT 1; 125 DECLARE n INT DEFAULT 1; 126 DECLARE SUM INT; 127 SET SUM=m+n; 128 SELECT SUM; 129 130 131 #用戶變數和局部變數的對比 132 133 作用域 定義位置 語法 134 用戶變數 當前會話 會話的任何地方 加@符號,不用指定類型 135 局部變數 定義它的BEGIN END中 BEGIN END的第一句話 一般不用加@,需要指定類型 136