变量 系统变量:全局变量(global)、会话变量(session) 自定义变量:用户变量、局部变量
系统变量:变量由系统提供,不是用户定义,属于服务器层面
查看系统变量
#查看所有的系统变量 SHOW GLOBAL|SESSION VARIABLES; #global是全局,session是会话 #如果没有显式声明global还是session,则默认是session #查看满足条件的部分系统变量 SHOW GLOBAL|SESSION VARIABLES LIKE '';查看指定的系统变量的值
SELECT @@global|session.变量名; #如果没有显式声明global还是session,则默认是session为系统变量赋值
#方式一 SET GLOBAL|SESSION 系统变量名 = 值; ##如果没有显式声明global还是session,则默认是session #方式二 SET @@global|session.系统变量名 = 值; SET @@变量名=值;服务器层面上的,必须拥有super权限才能为系统变量赋值,作用域为整个服务器,也就是针对所有连接(会话)有效,但不能跨重启
服务器为每一个连接的客户端都提供了系统变量,作用域为当前的连接(会话)
作用域:针对于当前连接(会话)生效,同于会话变量的作用域 位置 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 局部变量名;