【问题标题】:Mysql: Allow Null meaningMysql:允许Null的意思
【发布时间】:2011-04-02 14:19:03
【问题描述】:

"Allow Null" 是什么意思,它有什么作用?

【问题讨论】:

    标签: mysql null


    【解决方案1】:

    为了理解“允许 Null”的含义,您需要了解 NULL 是什么,并了解它与简单的零或空白字符串不同。

    NULL 是 SQL 中的一个特殊值。它表示不存在的数据。这与空白数据不同。

    当您在 MySQL 中创建表时,它允许您指定是否允许您的字段为NULL。如果您指定“Allow Null”,则可以在这些字段中创建具有NULL 值的记录。

    这在某些情况下可能对您有用。例如,Yes/No 字段可能是一个布尔值,但如果用户没有指定他们的偏好,您可能希望设置为 NULL 来表明这一点,而不是默认为 yes 或 no。

    但在许多情况下,允许NULL 可能会出现问题。设置为NULL 的字段可能会在查询中产生意外结果,因为NULL 在所有情况下都不会遵循与其他值相同的规则。 eg:如果你查询上面的示例字段WHERE myfield != 1,你可能期望得到所有不等于1的记录的结果。但是NULL字段不会被返回;你需要为他们写一个特例。

    NULL 也被用作JOIN 查询时的默认值,其中某些结果没有要加入的记录。连接表中的未知字段将全部设置为NULL

    一般来说,如果您不确定如何处理“Allow Null”,最安全的选择是将其设置为不允许 Null。

    请参阅Wikipedia entry for NULL in SQL 了解更多信息。

    希望对您有所帮助。

    【讨论】:

    • 谢谢!真的很好解释。
    【解决方案2】:

    允许 Null 表示当您更改或插入数据时,您不需要 填写该数据。这不是强制性的。

    【讨论】:

      【解决方案3】:

      本质上,如果您允许空值,则表示相关字段可以包含合法值(例如:2011-04-02,如果它是日期)以及“NULL”(或“否值”)。

      因此,如果您设想某个字段是必填字段,则在架构声明中应始终将其表示为 NOT NULL,而可选字段可以保持原样。

      有关更多信息,请查看 MySQL 手册的 Working with NULL Values 部分,其中(除其他外)巧妙地总结了以下内容:

      从概念上讲,NULL 表示“缺少 未知值”,它被处理 与其他有些不同 价值观。

      【讨论】:

      • 感谢您的出色回答和链接。我一定会读的。
      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2010-09-17
      • 1970-01-01
      相关资源
      最近更新 更多