mysql中零(IFNULL合并和NULLIF)相关知识点总结

  

本文实例讲述了mysql中零(IFNULL,合并和NULLIF)相关知识点。分享给大家供大家参考,具体如下:

  

在MySQL中,零值表示一个未知值,它不同于0或空字符串”,并且不等于它自身。

  

我们如果将NULL值与另一个NULL值或任何其他值进行比较,则结果为NULL,因为一个不知道是什么的值(空值)与另一个不知道是什么的值(空值)比较,其值当然也是一个不知道是什么的值(空值).

  

然而我们通常,使用NULL值来表示数据丢失,未知或不适用的情况,例如,潜在客户的电话号码可能为NULL,并且可以稍后添加,所以我们创建表时,可以通过使用非空约束来指定列是否接受零值。接下来,我们来创建一张表,并且以此为依据来具体了解下:

        创建表导致(   id INT AUTO_INCREMENT主键,   first_name VARCHAR(50)非空,   last_name VARCHAR(50)非空,   源VARCHAR(255)非空,   电子邮件VARCHAR (100),   电话VARCHAR (25)   );      之前      

我们可以看出来,id是主键列,它不接受任何零值,然后first_name、last_name列和来源使用非空约束,因此,不能在这些列中插入任何零值,而电子邮件和电话列则可接受零值。

  

所以,我们可以在插入语句中使用NULL值来指定数据丢失。例如,以下语句将一行插入到线索表中。因为电话号码丢失,所以使用NULL值:

        插入导致(first_name、last_name、源、电子邮件、电话)   值(“约翰”、“母鹿”、“网页搜索”,“john.doe@yiibai.com”, NULL);      之前      

因为邮件列的默认值为NULL,可以按照以下方式插入语在句中省略电子邮件:

        插入导致(first_name、last_name、来源、电话)   值(“莉莉”,“布什”,“无约电话”,“(408)555 - 1234”),   (“大卫”,“威廉”、“网页搜索”,“(408)888 - 6789”);      之前      

完事如果我们要将列的值设置为空,可以使用赋值运算符(=),例如,要将大卫·威廉的手机(电话)更新为空,请使用以下更新语句:

        更新了   集   电话=零   在哪里   id=3;      之前      

但是如果使用order by子句按升序对结果集进行排序,则MySQL认为NULL值低于其他值,因此,它会首先显示零值。以下查询语句按照电话号码(电话)升序排列:

        选择   *   从   领导   通过电话;      之前      

执行上面查询语句,结果如下:

        + - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +   | | id first_name | last_name | | |电子邮件电话|来源   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +   约翰| 1 | |能源部Web搜索john.doe@yiibai.com零| | | |   威廉大卫| 3 | | |网络搜索零零| | |   布什莉莉| 2 | | |冷叫零| | | (408)555 - 1234   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +      之前      

如果使用ORDER BY DESC, NULL值将显示在结果集的最后:

        选择   *   从   领导   通过电话订购DESC;      之前      

执行上面查询语句,结果如下:

        + - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +   | | id first_name | last_name | | |电子邮件电话|来源   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +   布什莉莉| 2 | | |冷叫零| | | (408)555 - 1234   约翰| 1 | |能源部Web搜索john.doe@yiibai.com零| | | |   威廉大卫| 3 | | |网络搜索零零| | |   + - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - +   3行设置      之前      

我们如果要在查询中测试空,可以在哪里子句中使用NULL或不是零运算符,例如,要获得尚未提供电话号码的潜在客户,请使用是NULL运算符,如下所示:

mysql中零(IFNULL合并和NULLIF)相关知识点总结