本文实例讲述了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)相关知识点总结