变量
一、系统变量(变量由系统定义,不是用户定义,属于服务器层面)
1.全局变量(针对于所有会话(连接)有效,但不能跨重启)
默认会话级变量,需要添加global关键字
①查看所有全局变量
SHOW GLOBAL VARIABLES;
②查看满足条件的部分系统变量
SHOW GLOBAL VARIABLES LIKE ‘%char%‘;
③查看指定的系统变量的值
SELECT @@global.autocommit;
④为某个系统变量赋值
SET @@global.autocommit=0;
或
SET GLOBAL autocommit=0;
2.会话变量(针对于当前会话(连接)有效)
①查看所有会话变量
SHOW SESSION VARIABLES;
②查看满足条件的部分会话变量
SHOW SESSION VARIABLES LIKE ‘%char%‘;
③查看指定的会话变量的值
SELECT @@autocommit;
或
SELECT @@session.tx_isolation;
④为某个会话变量赋值
SET @@session.tx_isolation=‘read-uncommitted‘;
或
SET SESSION tx_isolation=‘read-committed‘;
二、自定义变量
1.用户变量(针对于当前会话(连接)有效,作用域同于会话变量)
①声明赋初始值
SET @变量名=值;
或
SET @变量名:=值;
或
SELECT @变量名:=值;(SELECT 只能配合“:=”使用)
②表字段赋值
SELECT 字段 INTO @变量名 FROM 表;
③查看变量
SELECT @变量名;
2.局部变量(仅仅在定义它的begin end块中有效)
①声明
DECLARE 变量名 类型; --没有默认值
DECLARE 变量名 类型 DEFAULT 值;--有默认值
②赋值
SET 局部变量名=值;
或
SET 局部变量名:=值;
或
SELECT @局部变量名:=值;(使用SELECT变量名前需要加“@”)
③表字段赋值
SELECT 字段 INTO 局部变量名 FROM 表;