变量
1 #变量 2 /* 3 系统变量: 4 全局变量 5 会话变量 6 7 自定义变量: 8 用户变量 9 局部变量 10 11 */ 12 13 #一、系统变量 14 /* 15 说明:变量由系统提供,不是用户定义,属于服务器层面 16 注意: 17 如果是全局级别,则需要加global,如果是会话级别,则需要加session,如果不是,则默认session 18 使用的语法: 19 1.查看所有的系统变量 20 show global|【session】 variables; 21 22 2.查看满足条件的部分系统变量 23 show global|【session】variables like '%char%'; 24 25 3.查看指定的某个系统变量的值 26 select @@global|【session】.系统变量; 27 28 4.为某个系统变量赋值 29 方式一: 30 set global |【session】 系统变量 = 值; 31 方式二: 32 set @@global|【session】.系统变量名 = 值; 33 34 35 */ 36 37 #1》全局变量 38 /* 39 作用域:服务器每次启动将为所有的全局变量附初始值,针对所有的会话(连接)有效,但不能跨重启 40 41 42 */ 43 44 #①查看所有的全局变量 45 SHOW GLOBAL VARIABLES; 46 47 #②查看的部分的全局变量 48 SHOW GLOBAL VARIABLES LIKE '%char%'; 49 50 #③查看指定的全局变量的值 51 SELECT @@global.autocommit; 52 SELECT @@tx_isolation; 53 54 #④为某个指定的全局变量赋值 55 SET @@global.autocommit=0;#跨连接有效 56 57 58 #2》会话变量 59 /* 60 作用域:仅仅针对当前的会话(连接)有效 61 62 */ 63 #①查看所有的会话变量 64 SHOW VARIABLES; 65 SHOW SESSION VARIABLES; 66 67 #②查看部分的会话变量 68 SHOW VARIABLES LIKE '%char%'; 69 SHOW SESSION VARIABLES LIKE '%char%'; 70 71 #③查看指定的某个会话变量 72 SELECT @@tx_isolation; 73 SELECT @@session.tx_isolation 74 75 #④为某个会话变量赋值 76 方式一 77 SET @@session.tx_isolation='read-uncommit'; 78 79 方式二 80 SET SESSION tx_isolation = 'read-committed'; 81 82 #二、自定义变量 83 /* 84 说明:变量是用户自定义的,不是由系统的 85 使用步骤: 86 声明 87 赋值 88 使用(查看、对比、运算等) 89 90 91 */ 92 #1、用户变量 93 /* 94 作用域:针对当前会话(连接)有效,同于会话变量的作用域 95 应用在任何地方,也就是begin end里面或者外面 96 */ 97 98 赋值的操作符= 或:= 99 #①声明并初始化 100 SET @用户变量名=值;或 101 SET @用户变量名:=值;或 102 SELECT @用户变量:=值; 103 104 #②赋值(更新用户变量的值) 105 方式一:通过set或select 106 SET @用户变量名=值;或 107 SET @用户变量名:=值;或 108 SELECT @用户变量:=值; 109 方式二:通过select INTO 110 111 SELECT 字段 INTO @变量名#值是一个 112 FROM 表; 113 114 #③使用(查看用户变量的值) 115 SELECT @用户变量名; 116 117 #案例: 118 #声明并初始化 119 SET @name='john'; 120 SET @name=100; 121 SET @count=1: 122 #赋值 123 selet COUNT(*) INTO @count 124 FROM employees; 125 #查看 126 SELECT @count; 127 128 #2、局部变量 129 /* 130 作用域:仅仅在定义在它的的begin end中有效 131 应用在begin end中的第一句话!!! 132 */ 133 #①声明 134 DECLARE 变量名 类型; 135 DECLARE 变量名 类型 DEFAULT 值; 136 137 #②赋值 138 方式一:通过set或select 139 SET 局部变量名=值;或 140 SET 局部变量名:=值;或 141 SELECT @局部变量:=值; 142 方式二:通过select INTO 143 144 SELECT 字段 INTO @局部变量名#值是一个 145 FROM 表; 146 147 #③使用 148 SELECT 局部变量名; 149 150 对比用户变量和局部变量 151 作用域 定义和使用的位置 语法 152 用户变量 当前会话 会话中的任何地方 必须加@符号,不用限定类型 153 局部变量 BEGIN end中 只能在begin end中,且为第一句话 一般不用加@符号,需要限定类型 154 155 #案例:声明两个变量并赋初始值,求和,并答应 156 157 #1.用户变量 158 SET @m=1; 159 SET @n=2; 160 SET @sum = @m+@n; 161 SELECT @sum; 162 163 #2.局部变量#begin end中否则报错 164 DECLARE m INT DEFAULT 1; 165 DECLARE n INT DEFAULT 2; 166 DECLARE SUM INT; 167 SET SUM=m+n;l 168 SELECT SUM;
案例讲解
小结