MySQL --- 21♪ 进阶17 变量的声明/使用(输出)--全局变量/会话变量--用户变量/局部变量

/*进阶17 变量

系统变量:

    全局变量:

    会话变量:

    

自定义变量:

    用户变量:

    局部变量:

 

*/

/*

#一: 系统变量

#说明: 变量由系统提供,不是用户定义的,属于服务器层面

#使用的语法

 

#1/查看所有的系统变量,

show global /[session] variables;

 

2.查看满足条件的部分系统变量

show global/[session] variables like '%char%';

 

3.查看指定的某个系统变量的值

select @@global/[session] .系统变量名;

 

4.为某个系统变量赋值

方式一:

    set global/[session] 系统变量名=值;

方式二:

    set @@global/[session].系统变量名=值;

 

注意:

    如果是全局级别,则需要加上global;

    如果是会话级别,则需要加上session ;【如果不写,默认是这个】

*/

/*

#2>> 会话变量

  作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效

 

#① : 查看所有的会话变量

SHOW  VARIABLES;    #547行

SHOW SESSION VARIABLES;  #547行

 

#② : 查看部分的会话变量

SHOW VARIABLES LIKE '%char%';

SHOW SESSION VARIABLES LIKE '%char%';

 

*/

/*

#2>> 会话变量

  作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效

 

  对比用户变量和局部变量:

              作用域       定义和使用的位置           语法

   用户变量:   当前会话    会话中的任何地方           必须加@符号,不用限定类型

    

   局部变量:   begin end中  只能在begin end中,且      一般不用加@符号,需要限定类型

                 为第一句话

  

  

*/

#1》 全局变量

    #① 查看所有的全局变量

SHOW GLOBAL VARIABLES;

    #② 查看部分的全局变量

SHOW GLOBAL VARIABLES LIKE 'character%';

    #③ 查看指定的全局变量

SELECT @@global.autocommit;  #1

 

#④: 为某个指定的全局变量赋值

SET @@global.autocommit=0;   #0

 

#2>> 会话变量

/*

  作用域 : 仅对当前会话(查询的sql文件 / 连接) 有效

*/

 

#① : 查看所有的会话变量

SHOW  VARIABLES;    #547行

SHOW SESSION VARIABLES;  #547行

 

#② : 查看部分的会话变量

SHOW VARIABLES LIKE '%char%';

SHOW SESSION VARIABLES LIKE '%char%';

 

#③ : 查看指定的某个会话变量

     #select @@tx_isolation;  #不支持

#select @@session.tx_isolation; #不支持查询隔离级别

 

#④ : 为某个会话变量赋值

    #set @@tx_isolation='read-uncommitted'; #不支持更改隔离级别

    #SET session @@tx_isolation='read-uncommitted';

 

#二: 自定义变量

/*

    说明: 变量是用户自己进行定义的,不是由系统提供的;

    使用步骤: 声明/赋值/使用(查看/比较/运算等..)

        

*/

 

#1.用户变量

    #作用域:针对当前会话(连接)有效,同于会话变量的作用域

#赋值的操作符: =或:=

    #① 声明并初始化

    SET @用户变量名=值;

    SET @用户变量名:=值;

    SELECT @用户变量名:=值;

    

#方式二:通过select into

    SELECT 字段 INTO 变量名

    FROM 表;

#输出结果

    SELECT @num;

 

#案例:

    SET @name='john';

    SET @name=100;

        #声明并初始化

    SELECT COUNT(*) INTO @num

    FROM employees;

 

    SELECT @num;

#-----------------------------

#2.局部变量 ------没办法实践!!实践错!!!!

/*

    作用域:仅仅作用在定义它的begin end中有效

    应用在begin end中的第一句话

    

*/

#① 声明

DECLARE 变量名 类型;

DECLARE 变量名 类型 DEFAULT 值;

#① 赋值

    SET 局部变量名=值;

    SET 局部变量名:=值;

  SELECT @用户变量名:=值;    

   #方式二:通过select into

    SELECT 字段 INTO 局部变量名

    FROM 表;

#③ 使用

SELECT 局部变量名;

# 案例---------------

 

#1.使用用户变量实现加法

SET @m=1;

SET @n=2;

SET @sum=@m+@n;

SELECT @sum;

 

#2.使用局部变量实现加法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值