SQL中的Null,Zero和Blank有什么区别?

新手上路,请多包涵

有人可以向我解释一下 SQL 中 Null、Zero 和 Blank 之间的区别吗?

原文由 Sachin Neupane 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 559
1 个回答

零是一个数值。它是具有精确数学性质的定性。 (您可以对其进行算术运算…)

NULL 表示没有任何值。除了测试它,你不能用它做任何事情。

空白是不明确的。对于不同的人来说,它在不同的环境中意味着不同的东西。例如:

  • AFAIK,“空白”没有 SQL 或 MySQL 特定的技术含义。 (尝试搜索在线 MySQL 手册…)
  • 对于某些人来说,“空白”可能意味着长度为零的字符串值:即其中没有字符的字符串值( '' )。
  • 对于某些人来说,“空白”可能意味着仅由非打印字符(SPACE、TAB 等)组成的非零长度字符串值。或者可能只包含一个空格字符。
  • 在某些情况下(字符和字符串是不同的类型),有些人可以使用“空白”来表示非打印字符值。
  • 有些人甚至可以使用“空白”来表示“打印或显示时未显示的任何内容”。
  • 还有一些特定于(例如)ORM 映射的含义。

关键是“空白”没有一个明确定义的含义。至少不是(母语)英语 IT 术语。最好避免它… _如果您希望其他 IT 专业人员理解您的意思_。 (如果其他人使用该术语并且从上下文中不明显,请让他们准确地说出他们的意思!)


对于如何表示零/空/空白,它们占用多少内存或类似的东西,我们不能说任何有意义的事情。我们只能说它们彼此之间的表示方式不同……并且实际的表示方式是 实现和上下文相关 的。

原文由 Stephen C 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题