/* 变量 系统变量: 全局变量 会话变量 自定义变量 用户变量 局部变量 */ -- ------------系统变量-------------------- /* 变量由系统提供,不是用户定义,属于服务器层面 查看的语法: show global variables; show session variables; 不写session,也是会话级别的 查看满足条件的部分系统变量 show global【session】 variables like '%char%'; 查看指定的某个系统变量的值 select @@global【session】 系统变量名; 为系统变量赋值 set global|session 系统变量名 = 值 set @@global|session 系统变量名 = 值 如果是全局级别,加global,如果是会话级别session,不写默认是session 作用域:服务器每次启动为所有的全局变量赋初始值,针对所有的会话(连接)有效,但不能跨重启 */ -- ------------用户变量-------------------- /* 用户变量:针对当前会话(连接)有效 声明并初始化: set @用户变量名 = 值; set @用户变量名 := 值; select @用户变量名 := 值; 复制或更新: set @用户变量名 = 值; set @用户变量名 := 值; select @用户变量名 := 值; select 字段 into @用户变量名 from 表; 查看用户变量值:select @用户变量名 作用域:会话中任意地方 */ -- ------------局部变量-------------------- /* 作用域:仅仅定义在begin end中有效,并且是第一句话 声明:declare 变量名 类型; declare 变量值 类型 default 值; 赋值: set 局部变量名 = 值; set 局部变量名 := 值; select @局部变量名 := 值; select 字段 into 局部变量名 from 表; 使用:select 局部变量名; */ -- 案例:用户变量 SET @m = 2; SET @n = 1; SET @sum = @m + @n; SELECT @sum; -- 3 -- 局部变量 --报错 DECLARE m INT DEFAULT 1; DECLARE m INT DEFAULT 2; DECLARE SUM INT; SET SUM = m + n; SELECT SUM;