2012-06-27 54 views
-1

我是mysql新手。感谢您提前回答。MYSQL中的NULL和NOT NULL

NULL用于可插入非值CAN的字段,如'拥有驾照?' ?

+0

嗯...什么?我想你宁可想用tinyint或bool来表示“拥有驾驶执照”等字段。 – JohnP

回答

1

是的,没错。一些further reading

编辑:由于你的问题的措辞有点模糊,这是我对这个问题的解释:你想知道列定义中的NULL与NOT NULL的语义。在你的例子中,“有驾驶执照”,似乎NULL是一个合理的价值,比方说,如果问题没有得到回答,所以你希望允许NULL。在这种情况下,是的,使用NULL(尽管它是隐含的,所以它不足以使用NOT NULL)。

3

A NULL通常用于表明该值未知,或者该字段没有值。

如果您问某人是否有驾驶执照,他们可能会说是(TRUE)或否(FALSE)。但如果你还没有问他们,或者他们没有回答这个问题,那么你不知道(NULL)。

很多时候你想要禁止包含NULL的列。这可以通过声明该列为NOT NULL来完成。

NULL的使用是一个非常有争议的话题。在数据库的标准形式的原始定义中,具有可为空的列意味着您的设计不在1NF中。最近的定义通常会放宽这个约束。