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

时间:2017-09-06 03:19:58

标签: mysql sql

有人可以解释一下吗?

4 个答案:

答案 0 :(得分:4)

零是一个数字值。它具有精确的数学特性。 (你可以对它做算术......)

NULL表示没有任何值。除了测试之外,你无法做任何事情。

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

  • 有人可能意味着一个零长度的字符串值:即一个没有字符的字符串值('')。
  • 某人可能意味着一个非零长度的字符串值,仅包含非打印字符(SPACE,TAB等)。或者可能只包含一个SPACE字符。
  • 在某些情况下(字符和字符串是不同的类型),有人可能意味着非打印字符值。
  • 有人甚至可能表示“打印或显示它时未显示的任何内容”。

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

对于如何表示ZERO / NULL / BLANK,它们占用多少内存或类似内容,我们不能说一般有意义的事情。我们可以说的是,它们彼此表示不同......并且实际表示是实现和依赖于上下文

答案 1 :(得分:1)

您可以根据分娩情景(现实生活中的例子)来关联NULL-BLANK-ZERO案例。

NULL案例:孩子尚未出生。

BLANK案例:孩子出生但我们没有给他任何名字

ZERO案例:我们将其定义为零,Child出生但零年龄。 了解此数据在数据库表中的外观:

{{3}}

NULL也是缺少值,其中具有NULL的字段未分配任何内存,其中空字段具有空值,内存中已分配空间。

答案 2 :(得分:0)

你能否更准确地了解空白?

我理解你的问题: "空白"是缺乏价值。这是一个人类的概念。在SQL中,无论如何都需要使用值填充该字段。因此,有一个值意味着"没有为该字段设置任何值"。它是NULL。 如果Blank是"",那么它是一个字符串,一个空字符串。 零:嗯,零是0 ......这是一个数字。

总结一下:

NULL - >没有价值集

空白("") - >空字符串

- >数字等于0

请在下次在Stack上发布答案时尝试更准确!

如果我是你,我会检查一些有关它的资源,例如: https://www.tutorialspoint.com/sql/sql-null-values.htm

答案 3 :(得分:0)

NULL表示它没有任何值,甚至没有垃圾值。 ZERO是整数值。 BLANK只是一个空字符串值。