美文网首页
mysql 局部变量

mysql 局部变量

作者: 哈斯勒 | 来源:发表于2019-08-28 14:34 被阅读0次
/*
 系统变量:
    全局变量
    会话变量
    
 自定义变量:
    用户变量
    局部变量
*/
#1.全局变量:变量是由系统定义的,不是用户定义的,属于服务器层面
# 注意:如果是全部级别,需要加global,如果是会话级别,则需要加session,如果不写,则默认session
# 作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效,但不能垮重启

#① 查看所有的系统变量
#  show global(session) variables;
SHOW GLOBAL VARIABLES;
   
#② 查看满足条件的部分系统变量
#  show global(session) variables like '%char%'
SHOW GLOBAL VARIABLES LIKE '%char%';

# ③ 查看指定的某个系统变量的值
#  select @@ 系统变量名; (session)
#  select @@global|[session] 系统变量名; (session) 
SELECT @@global.autocommit;
SELECT @@tx_isolation;

# ④ 为某个系统变量赋值
#  set 系统变量名 = 值;
#  set global|[session] 系统变量名 = 值
#  set @@global|[session].系统变量名 = 值
SET @@global.autocommit=0;

#2.会话变量:
# 
# 作用域:仅仅针对于当前会话(连接)有效
#① 查看所有的系统变量
#  show global(session) variables;
SHOW VARIABLES;
SHOW SESSION VARIABLES;
   
#② 查看满足条件的部分系统变量
#  show global(session) variables like '%char%'
SHOW VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%';

# ③ 查看指定的某个系统变量的值
#  select @@ 系统变量名; (session)
#  select @@global|[session] 系统变量名; (session) 

SELECT @@tx_isolation;
SELECT @@session.tx_isolation;

# ④ 为某个系统变量赋值
#  set 系统变量名 = 值;
#  set global|[session] 系统变量名 = 值
#  set @@global|[session].系统变量名 = 值
#SET @@tx_isolation=REPEATABLE-READ;
#set session tx_isolation = 'read-committed';

#自定义变量
/*
 说明: 变量是用户自定义的,不是系统的
 使用步骤:
     声明
     赋值
     使用(查看,比较,运算等)
*/
#1. 用户变量
/*
 作用域: 针对于当前会话(连接)有效,同于会话变量的作用域
 可应用于任何地方,begin end 内外部皆可以
*/
#① 声明并初始化
SET @用户变量名=值;
SET @用户变量名:=值;
SELECT @用户变量名:=值;

#②赋值(更新用户或变量的值)
#方式一
   SET @用户变量名=值;
   SET @用户变量名:=值;
   SELECT @用户变量名:=值;
#方式二:
   SELECT 字段 INTO 变量名
   FROM 表;
#③使用(查看用户变量的值)
   SELECT @用户变量名; 
  
#案例
   SET @name = 'john';
   SET @name = 100;
   SET @count = 1;
   SELECT COUNT(*) INTO @count
   FROM employees;
   SELECT @count;
   
 #2.局部变量
 /*
  作用域: 仅仅在定义他的begin end中有效
  应用在begin end中,且必须是第一句话
 */
 #①声明
 DECLARE 变量名 类型;
 DECLARE 变量名 类型 DEFAULT 值;
 
 #②赋值
 #方式一
   SET  局部变量名=值;
   SET  局部变量名:=值;
   SELECT @局部变量名:=值;
 #方式二:
   SELECT 字段 INTO 局部变量名
   FROM 表;
   
 #③ 使用
 SELECT 局部用户名

 #案例,声明两个变量并赋初始值,求和,并打印
 #1. 用户变量
 SET @m=1;
 SET @n=2;
 SET @sum = @m +@n;
 SELECT @sum;
 
 #2. 局部变量
 /*
  declare m int default 1;
  declare n int default 2;
  declare sum int;
  set sum = m+n;
  select sum;
 */
 
 
        作用域     定义和使用的位置    语法
用户变量    当前会话    会话中的任何地方    必须加@符号,不用限定类型
局部变量    BEGIN END 中 只能BEGIN END中第一句话    一般不用加@符号,需要限定类型


 

相关文章

网友评论

      本文标题:mysql 局部变量

      本文链接:https://www.haomeiwen.com/subject/yinpectx.html