MySQL数据库中NULL和NOT NULL的含义是什么?

时间:2012-09-07 17:48:11

标签: mysql database

每当我们在mysql数据库中创建表时,就会出现一个null复选框。如果单击它然后它也采用空值,如果它仍然未选中,那么它也采用空值。这是什么意思?

4 个答案:

答案 0 :(得分:1)

该复选框可能将默认值设置为null。可能还有一个框指定字段是否接受空值。 Null基本上意味着空或无(在VB中)。

答案 1 :(得分:1)

NULL用于表示“无值”,并允许区分1和0,true或false,或空字符串与带内容的字符串。它类似于Ruby中的nil,JavaScript中的null或PHP中的NULL

如果您将列定义为NOT NULL,那么在没有指定该列的值的情况下,它将不允许INSERT。如果你有一个DEFAULT,那么这将自动应用。如果您使用ORM,它可以为您填写安全,最小的默认值。

可以NULL的列每行需要几乎无关紧要的额外存储空间,一位,以保存NULLNOT NULL标记。

请记住,MySQL中的NULL是不寻常的,因为它不大于,小于或等于任何其他值。这就是逻辑比较需要IS NULLIS NOT NULL的原因。

答案 2 :(得分:0)

Null基本上是"没有价值"。如果允许空值,则需要确保代码能够处理不包含值的列。另一种方法是定义的"空"每列的值(例如,0表示整数)。这有时比处理空值更省力。

如下面的HLGEM所述:我并不是说0等于null。考虑: 数据库与" StockOnHand"列。

0表示您知道手头没有库存。 Null真的意味着未知(你有男人有股票,你可能没有)

根据应用程序的不同,您可能决定对待" unknown"和"没有股票" - 在这种情况下,您可以使用" no nulls"并且只有一个0值。

答案 3 :(得分:0)

根据manual

  

NULL值表示“无数据”。 NULL可以用任何字母写成。同义词是\N(区分大小写)。

NOT NULL意味着与NULL相反,或者没有数据。由于某些列可以是NULL,因此您可以使用WHERE col IS NOT NULL查找非“空”的值。

相关问题