每当我们在mysql数据库中创建表时,就会出现一个null复选框。如果单击它然后它也采用空值,如果它仍然未选中,那么它也采用空值。这是什么意思?
答案 0 :(得分:1)
该复选框可能将默认值设置为null。可能还有一个框指定字段是否接受空值。 Null基本上意味着空或无(在VB中)。
答案 1 :(得分:1)
NULL
用于表示“无值”,并允许区分1和0,true或false,或空字符串与带内容的字符串。它类似于Ruby中的nil
,JavaScript中的null
或PHP中的NULL
。
如果您将列定义为NOT NULL
,那么在没有指定该列的值的情况下,它将不允许INSERT
。如果你有一个DEFAULT
,那么这将自动应用。如果您使用ORM,它可以为您填写安全,最小的默认值。
可以NULL
的列每行需要几乎无关紧要的额外存储空间,一位,以保存NULL
或NOT NULL
标记。
请记住,MySQL中的NULL
是不寻常的,因为它不大于,小于或等于任何其他值。这就是逻辑比较需要IS NULL
和IS 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
查找非“空”的值。