• MySQL 变量类型


    用户定义的变量(前缀为@):

    您可以访问任何用户定义的变量,而无需声明或初始化它。如果引用尚未初始化的变量,则其值为NULL和字符串类型。

    select @now2;
    NULL
    

    set赋值:

    set @num=0;
    -- select count(1) from hs_draw_info where unify_loan_account is not null into @num;
    select count(1) into @num from hs_draw_info where unify_loan_account is not null;
    select @num;
    

    select赋值:

    select now() into @now;
    select @now;
    
    2019-02-20 13:44:21
    

    或者

    SELECT @start := 1, @finish := 10;
    select @start,@finish;
    

    select使用:=也可以实现赋值

    用户定义的变量是特定于会话的。也就是说,其他客户端无法看到或使用由一个客户端定义的用户变量。

    局部变量(无前缀):

    DECLARE在访问本地变量之前,需要声明它们。

    它们可以用作局部变量和存储过程中的输入参数。

    如果缺少default,默认初始化为NULL

    delimiter $$
    drop procedure if exists pro $$
    create procedure pro()
    begin
       declare num int default 0;
         select count(1) from hs_draw_info where unify_loan_account is not null into num;
         select num;
    end $$
    delimiter ;
    call pro();
    

    上面的num就是局部变量。

    局部变量的BEGIN ... END范围是声明它的块。

    服务器系统变量(前缀@@):

    MySQL服务器维护许多配置为默认值的系统变量。它们可以是类型GLOBALSESSIONBOTH

    全局变量会影响服务器的整体操作,而会话变量会影响其对各个客户端连接的操作。

    要查看正在运行的服务器使用的当前值,请使用SHOW VARIABLES语句或SELECT @@var_name

    SHOW VARIABLES LIKE '%wait_timeout%';
    
    SELECT @@sort_buffer_size;
    

    可以使用命令行或选项文件中的选项在服务器启动时设置它们。在服务器运行时,大多数都可以动态更改SET GLOBAL或使用SET SESSION

    -- Syntax to Set value to a Global variable:
    SET GLOBAL sort_buffer_size=1000000;
    SET @@global.sort_buffer_size=1000000;
    
    -- Syntax to Set value to a Session variable:
    SET sort_buffer_size=1000000;
    SET SESSION sort_buffer_size=1000000;
    SET @@sort_buffer_size=1000000;
    SET @@local.sort_buffer_size=10000;
    

    参考:

    如何在MySQL中声明变量?

    13.7.4.1变量赋值的SET语法

  • 相关阅读:
    (个人题目)作业 题解
    P2618 数字工程
    P6394 樱花,还有你
    USACO08FEB Making the Grade G
    USACO13NOV Pogo-Cow S
    CSP2019 树上的数
    JSOI2018 潜入行动
    NOIP2017 宝藏
    SNOI2017 炸弹
    【洛谷】【最小生成树】P1195 口袋的天空
  • 原文地址:https://www.cnblogs.com/hongdada/p/10406174.html
Copyright © 2020-2023  润新知