MySQL_基础_变量
变量
分类 系统变量: 全局变量 会话变量 自定义变量: 用户变量 局部变量 说明 系统变量: 说明:变量由系统定义,不是用户定义,属于服务器层面 注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别 自定义变量: 说明:变量由用户自定义,而不是系统提供的 使用步骤: 1、声明 2、赋值 3、使用(查看、比较、运算等)
系统变量
全局变量 作用域:针对于所有会话(连接)有效,但不能跨重启 1、查看所有全局变量 SHOW GLOBAL VARIABLES; 2、查看满足条件的部分系统变量 SHOW GLOBAL VARIABLES LIKE '%char%'; 3、查看指定的系统变量的值 SELECT @@global.autocommit; 4、为某个系统变量赋值 SET @@global.autocommit=0; SET GLOBAL autocommit=0; 会话变量 作用域:针对于当前会话(连接)有效 1、查看所有会话变量 SHOW [SESSION] VARIABLES; 2、查看满足条件的部分会话变量 SHOW [SESSION] VARIABLES LIKE '%char%'; 3、查看指定的会话变量的值 SELECT @@[session.]autocommit; 4、为某个会话变量赋值 SET @@[session.]autocommit=0; SET [SESSION] autocommit=0;
自定义变量
用户变量 作用域:针对于当前会话(连接)有效,作用域同于会话变量 1、声明并初始化 SET @变量名=值; SET @变量名:=值; SELECT @变量名:=值; 2、赋值(更新变量的值) 方式一: SET @变量名=值; SET @变量名:=值; SELECT @变量名:=值; 方式二: SELECT 字段 INTO @变量名 FROM 表; 3、使用(查看变量的值) SELECT @变量名; 局部变量 作用域:仅仅在定义它的begin end块中有效,应用在 begin end中的第一句话 1、声明 DECLARE 变量名 类型; DECLARE 变量名 类型 [DEFAULT 值]; 2、赋值(更新变量的值) 方式一: SET 变量名=值; SET 变量名:=值; SELECT 变量名:=值; 方式二: SELECT 字段 INTO 变量名 FROM 表; 3、使用(查看变量的值) SELECT 变量名; 案例 1、声明两个变量,求和并打印 # 用户变量 SET @m=1; SET @n=1; SET @sum=@m+@n; SELECT @sum; # 局部变量 DECLARE m INT DEFAULT 1; DECLARE n INT DEFAULT 1; DECLARE sum INT; SET sum=m+n; SELECT sum; 区别 作用域 定义位置 语法 用户变量 当前会话 会话的任何地方 加@符号, 不用指定类型 局部变量 定义它的BEGIN END中 BEGIN END的第一句话 不加@, 需要指定类型