2

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

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

4

3 回答 3

1

NULL明确表示没有数据

因此,如果您想确保您的意思是它没有价值,请使用NULL. 否则,所有其他默认值都被视为值。

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

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

这将使查询没有输入任何内容的行更容易。

您仍然应该对您的数据进行类型检查 - 这样人们就不会输入-1或进入0身高或体重列。对我们来说,这很明显 - 没有任何东西可以有0高度,但对于数据库来说,该列有一个值 - 即使它不合逻辑,您也必须调整查询以过滤这些行。

于 2012-09-22T12:25:28.737 回答
0

您应该将其设置NULL为标准值,以表示三值逻辑UNKNOWN中的值或缺失值。

于 2012-09-22T12:24:49.400 回答
0

根据我的经验,你会希望为这样的事情允许 null 。专门谈论字符串;有一天,空字符串可能是一个有效值。同样对于数字字段,如果您不允许空值,则必须求助于使用特殊值来表示“空”,例如 -9876.6789,这在编写代码时并不有趣。

请记住,在编写查询并查找空值时,如果您执行类似field != null. 你会想要使用field is not null.

希望有帮助!

于 2012-09-22T12:28:21.063 回答