| 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 
 | 
|  |