一、长度不同:
NULL长度就是NULL,一个空字符串的长度是0。
二、排序:
NULL在空字符串之前排序。
三、count统计
COUNT(message)将包含含空字符串的字段,但不计算值为NULL的字段。
四、where查询
您可以使用绑定变量搜索空字符串,但不能搜索NULL。该查询:SELECT * FROM mytable WHERE mytext = ?无论您从客户端传递的值是什么,都永远不会匹配NULL的字段。要匹配NULL,您必须使用其他查询:
SELECT * FROM mytable WHERE mytext IS NULL五、实例讲解
例如,以下语句完全不同:
mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ('');
这两个语句都会在该phone列中插入一个值,但是第一个语句将插入一个 NULL值,第二个语句将 插入一个空字符串。
第一个的含义可以视为 “未知电话号码”,第二个的含义可以视为“已知该人没有电话,因此也没有电话号码”。”
为了帮助NULL处理,可以使用 IS NULL和IS NOT NULL运算符以及 IFNULL()函数。
在SQL中,与NULL其他任何值(甚至)相比,该值永远不会为真NULL。除非文档中针对表达式中涉及的运算符和函数另有说明,否则包含的表达式NULL始终会产生一个NULL值。以下示例中的所有列均返回NULL:
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
要搜索为的列值NULL,您不能使用expr = NULL测试。以下语句不返回任何行,因为expr = NULL对于任何表达式都不是真的:
mysql> SELECT * FROM my_table WHERE phone = NULL;
要查找NULL值,必须使用 IS NULL测试。以下语句显示如何查找NULL电话号码和空电话号码:
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = '';
有关更多信息和示例,请参见第3.3.4.6节“使用NULL值”。
您可以在可以有一列中添加索引 NULL,如果您使用的值 MyISAM,InnoDB或 MEMORY存储引擎。否则,必须声明一个索引列NOT NULL,并且不能插入NULL该列。
使用读取数据时LOAD DATA,空白列或缺失列将使用更新 ''。要将NULL值加载到列中,请\N在数据文件中使用。NULL在某些情况下,也可以使用原义词。请参见第13.2.6节“ LOAD DATA语句”。
使用DISTINCT,GROUP BY或时ORDER BY,所有 NULL值均视为相等。
使用时ORDER BY, NULL值将首先显示,如果您指定DESC按降序排序,则最后显示。
集合体(组)的功能,例如 COUNT(), MIN(),和 SUM()忽略 NULL的值。例外是 COUNT(*),它计算行而不是单个列的值。例如,以下语句产生两个计数。第一个是对表中行数的计数,第二个是NULL对age列中非值 数的计数:
mysql> SELECT COUNT(*), COUNT(age) FROM person;
对于某些数据类型,MySQLNULL 专门处理值。如果您插入NULL到 TIMESTAMP列中,则会插入当前日期和时间。如果您插入 NULL具有该AUTO_INCREMENT 属性的整数或浮点列,则将插入序列中的下一个数字。
网友回复
python如何调用openai的api实现知识讲解类动画讲解视频的合成?
html如何直接调用openai的api实现海报可视化设计及文本描述生成可编辑海报?
f12前端调试如何找出按钮点击事件触发的那段代码进行调试?
abcjs如何将曲谱播放后导出mid和wav格式音频下载?
python如何将曲子文本生成音乐mp3或wav、mid文件
python中mp3、wav音乐如何转成mid格式?
js在HTML中如何将曲谱生成音乐在线播放并下载本地?
python如何实现在windows上通过键盘来模拟鼠标操作?
python如何给win10电脑增加文件或文件夹右键自定义菜单?
python如何将音乐mp3文件解析获取曲调数据?