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