在MySQL中如果一个字段没有数据应该是空的还是null,还是其他?

时间:2012-09-22 12:20:55

标签: mysql database-design field

我正在组建一个MySQL数据库,数据是一个客户列表。并非每个客户的所有字段都有数据。所以有些字段是空的。我们希望完成缺失的数据,但希望能够使用SELECT生成报告以列出缺少数据字段的客户记录。

在将数据更新到这些字段之前应该存储哪些字段?它应该是NULL吗?空的?或者是其他东西?此外,在设置MySQL TABLE时应该将NULL列设置为什么以及将DEFAULT列设置为什么以最好地处理可能没有数据的情况?谢谢!

3 个答案:

答案 0 :(得分:1)

NULL明确表示无数据

因此,如果您想确定没有值,请使用NULL。否则,所有其他默认值都被视为值。

空字符串''是一个值。 零0也是一个值。

NULL很特别,因为它意味着没有价值

它将查询无输入的行。

您仍应对数据进行类型检查 - 以便人们不会在高度或重量列中输入-10。对我们来说,显而易见的是 - 没有任何东西可以有0高度,但是对于数据库,该列有一个值 - 即使它的不合逻辑,你也必须调整你的查询以过滤这些行

答案 1 :(得分:0)

您应该将其设置为NULL,因为它是表示the three-valued logicUNKNOWN或缺失值的标准值。

答案 2 :(得分:0)

根据我的经验,你会想要为这样的事情允许null。特别谈论字符串;有一天,空字符串可能是有效值。与数字字段类似,如果您不允许空值,则必须使用特殊值来表示“空”,例如-9876.6789,这对于编码来说永远不会有趣。

请记住,在编写查询并查找空值时,如果您执行field != null之类的操作,则可能会产生误导性结果。您需要使用field is not null

希望有所帮助!