默认值的概念是什么MySQL为什么不定义默认值mysql不定义默认为

我不确定这部分。

我上周问过我的同事。
他说MySQL是一个非常自由的系统。

不要强制使用默认值。
我认为这是一件好事。

是否设置默认值由您决定。
有需求就来吧。

例如,让我们在 2 02 3 年测试手表。
我发现最好不要添加默认值,而是将其保留为未指定并为空。

这取决于你。

为什么mysql不建议使用null作为列默认值?

朋友们大家好,我之前在做电商项目的时候也曾踩过这个坑。
我们当时设计Orders表的时候,Status列默认为NULL。
这样就导致了直接插入了多个新订单,并且状态为NULL,给后期处理订单的时候带来了很大的麻烦。
有一次我们的系统自动处理一个订单,但是状态是NULL,这搞乱了整个逻辑,差点让客户抱怨。

后来与团队讨论后,我们了解到将默认值设置为 NULL 并不真正可靠。
这不仅影响数据的一致性,还会显着降低查询效率。
例如,我使用age列作为索引,但发现由于NULL值较多,索引效率直线下降。
在人员管理系统中,这只是一种干扰。

我们来谈谈客户关系管理(CRM)系统。
客户的生日列的默认值也是NULL,所以我们要编写很多额外的代码来处理这些NULL值,非常麻烦。
最后,我们发现NULL值比常规值占用更多的存储空间。
对于大量的数据来说,这简直就是资源的浪费。

所以我特别同意MySQL不建议使用NULL作为默认值。
后来通过将默认状态更改为特定的识别状态(例如“付款待处理”)来解决该问题。
在设计数据库时,请务必仔细设置默认值,并小心不要像我一样仓促行事。

为什么MySQL不建议使用NULL作为列默认值?

上周我和同事谈论MySQL。

不建议使用NULL作为默认值。

他说检查数据很混乱。

例如,与 NULL 相比,所有结果均为空。

无法确定状态。

收藏也受到影响。

与COUNT()、COUNT(NULL)一样,结果是不同的。

DISTINCT、GROUP BY也可能是错误的。

因为NULL被认为是相同的。

编码压力更大。

您应该使用像 IFNULL 这样的函数。

多个 NULL 将是一种特殊情况。

它还占用一些存储空间。

只有 1 个字节。

但是数据量很大,增长很多。
忘了它。

这取决于你。

NOT NULL 和NULL

谈论MySQL中NOTNULL和NULL的区别,这两个确实很有趣。

首先我们来谈谈NOTNULL。
这告诉数据库您定义的列不能为空。
你明白了吗?例如,如果要创建包含“员工编号”字段的员工表,则“员工编号”不能为空。
正确的?如果插入数据时不输入“员工编号”,MySQL会自动提供一个默认值。
例如,如果是整数字段,则默认值为 0。
对于 CHAR 字段,默认值为空字符串。
如果它是 DATETIME 字段,则默认值类似于“0000-00-00 00:00:00”。
但是,如果你故意输入NULL,MySQL不会善待它,会直接处理默认值。
然而,这并不意味着该列实际上是空的。
这仍然是一个约束,告诉我们该列在逻辑上不能为空。

我们来谈谈NULL。
这与 NOTNULL 相反。
这表明该列可能为空。
例如,“联系信息”字段。
有些人可能没有留下电话号码或电子邮件地址。
在这种情况下,NULL用于指示该信息暂时不可用。
这使您可以更灵活地处理数据,因为您不必填写每个字段。

总之,NOTNULL 可确保数据完整性并防止丢失必要的信息。
NULL提供了更多的空间,使数据更加灵活。
使用哪一种取决于您的业务需求和数据完整性要求。
说实话,当时我不太明白为什么有人用NULL。
现在想想,有时候不填东西也挺方便的。