MySql变量说明

2020-07-24 12:04发布

  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             

 

原文: https://www.cnblogs.com/deyo/p/13371137.html
标签: