八、变量的学习
系统变量
变量由系统提供,不由用户定义,属于服务器层面
-
全局变量:
- 作用域:服务器每次启动将为所有的全局变量赋初值,针对于所有的会话(连接)有效,但不能跨重启
-
会话变量:
- 作用域:仅仅针对于当前会话(连接)有效
注意:默认SESSION;如果是全局级别,则需要加GLOBAL,如果是会话级别,则需要加SESSION,也可不加
使用的语法:
(默认SESSION)
-
查看所有的系统变量:
SHOW GLOBAL |SESSION VARIABLES;
-
查看满足条件的部分系统变量:
SHOW GLOBAL|【SESSION】 VARIABLES LIKE ‘%CHAR%’;
-
查看指定的某个系统变量的值:
SELECT @@GLOBAL|【SESSION】 .系统变量名; -
为某个系统变量赋值:
- 方式一:SET GLOBAL|【SESSION】 系统变量名 = 值;
- 方式二:SET @@GLOBAL|【SESSION】 .系统变量名 = 值;
自定义变量✌️✌️
变量是用户自定义的,不是系统的
用户变量
-
作用域:针对于当前会话(连接)有效;
应用在任何地方,可以在 begin end 里面或外面 -
使用步骤:
-
声明并初始化:
SET @用户变量名 = 值 ;| SET @用户变量名 := 值;
| SELECT @用户变量名 := 值; -
赋值(更新用户变量的值):
-
方法一:
SET @用户变量名 = 值;| SET @用户变量名 := 值;
| SELECT @用户变量名 := 值; -
方法二:
SELECT 字段(必须是一个值)
INTO @变量名 FROM 表名;
-
-
使用(查看、比较、运算等):
SELECT @用户变量名;
-
局部变量
-
作用域:仅仅在定义它的begin end中有效;
只能放在 begin end 中的第一句 -
使用步骤:
-
声明(需要注意类型):
DECLARE 变量名 类型;
DECLARE 变量名 类型 DEFAULT 值;
-
赋值:
-
方法一:
SET 局部变量名 = 值;| SET 局部变量名 := 值;
| SELECT @局部变量名 := 值; -
方法二:
SELECT 字段(必须是一个值)
INTO 局部变量名 FROM 表名;
-
-
使用:
SELECT 局部变量名;
-