MySQL中NULL和空值的区别 – 运维那点事

空值和零长度字符串在代码中并不相同。
空值就是null,中文称为空值。
长度为0的字符串是一对英文引号,没有内容。
这两者是不同的。

零长度字符串。
这是一种字符类型,肯定会占用空间。
”而且很占空间,如果为null,则不需要空格。
该数据类型也是明确定义的字符类型。
null,类型未知。

既然是null,那么就可以方便的放置,可以放置在任何字段中。
'',不行,只能放置字符字段,其他字段请填写,错误。
我尝试过,但放不下。

我们来测试一下,实验计划2 02 2 年在北京进行。
假设我们有一个名为students的表,有一个名为Phone的字段,首先编写完整的记录: 从学生中选择。
这将打印所有记录。
无论 Phone 是 null 还是 '' 都会输出。

第二,电话号码为空。
我写: 从电话号码为空的学生中选择。
这将仅打印电话为空的记录。
其他记录,包括空记录,将不会被输出。

第三,电话号码是“”。
我写: 从电话=''的学生中选择; 这将仅打印电话为“”的记录。
不输出“”以外的记录。

四、手机不是“手机”。
我写: 从您想要呼叫的学生中选择。
这有点有趣。
这样写的MySQL也会排除phone为null的记录。
只是输出的phone不是“”。
这与MSSQL不同。

五、手机不空。
我写: 从电话号码不为空的学生中选择。
除非电话记录为空,否则将打印此信息。
'',只要不为空就会输出。

如您所知,NULL 值和零长度字符串 '' 之间存在很大差异。
null 不占用空间且类型未知,因此可以放在任何地方。
'' 占用空间,类型明确,只能容纳字符类型。
测试结果如下所示。

MySQL 中NULL和空值的区别是什么?

我在这个问题上确实经历过一些裂缝。
我记得那一年,当我还在创业时,我们团队只是使用MySQL作为数据库,并且需要处理空值。
结果写完代码并运行测试后,性能比预期差很多。
当时我还很困惑,以为自己哪里做错了。
后来咨询了一位资深同事,发现MySQL中的NULL虽然看起来不占空间,但实际上很占空间。
具体来说,MySQL 会为 NULL 值分配 1 个字节的空间,当存在大量 NULL 值时,会导致性能下降。
当时我们花了两天时间改进数据库设计来解决这个问题。
嘿,在这个行业,你必须不断学习! 😅

mysql如何理解NULL和NOT NULL

NULL 是一种未知状态。
NOTNULL 强制指定一个值。

我上周刚刚解决了表格设计问题。
必须填充用户名,因此请使用 NOTNULL。

如果未提供电子邮件地址,只需输入 NULL。
NULL 不等于空字符串。

要检查 NULL,请使用 ISNULL。
= 无法使用。

关键字段使用NOTNULL。
例如,订单号。

默认可以与NOTNULL一起使用。
例如,默认状态为待处理。

建表时直接添加约束。
以后无需更改。
NULL索引会影响效率。
这取决于具体情况。

区分商业中的未知和无。
如果年龄未知,则使用 NULL。

设计时不要盲目使用NULL。
仅对非关键字段考虑 NULL。

记录清楚。
例如,电子邮件允许 NULL。

这是第一个。
您想将哪个特定字段设置为 NULL?