SQL中的NULL是什么?

3

我对SQL中的NULL值感到困惑。我认为NULL是空的。

那么它会包含任何垃圾值或未知值,还是像整数中的0或字符中的空白一样?


@MTilsted:不是的。它是一个值的缺失 - user330315
1
@a_horse_with_no_name:- 是的,非常正确。或者更好地说是未知值,因为 OP 可能会误解它,并认为它与空值相同 ;) - Rahul Tripathi
NULL是一个值,用于指示字段中没有特定领域的值。但我仍然会说,NULL本身是一个值。只需尝试询问数据库管理员,如果未提供值,则字段的默认值是什么。他很可能会回答null。 - MTilsted
5个回答

3
简单来说,NULL 不是数据值,而是未知值的标记。
对 NULL 进行任何数学运算将导致 NULL。例如,
10 + NULL = NULL
同样,如果您对字符串进行字符串连接,则会得到:
'String ' || NULL || 'Concatenation'   -- Result is NULL

你可以将Null理解为“不适用”或“未知”:它不同于零(0)或任何其他默认值,但更重要的是,在SQL中,null与其他值的处理方式非常不同,因为它没有实际值。

下面是一个示例来解释我们所说的NULL意味着未知值

StudentName TestResult
X             78
A             89
B             67
C             NULL

从这里可以看出,学生C在考试中得到了空分数。那么这意味着什么?

现在可以说学生没有参加考试,也可能是学生的数据不可用。但它绝对不意味着学生在考试中得到了0分(如果您将0分配给学生,则意味着学生参加了考试并得到了零分)。我们只能说学生的数据是

未知或为空


2

这是指数据库中不存在某个数据值。NULL也是SQL保留关键字之一,用于标识Null特殊标记。

NULL意味着“缺失的未知值”,与其他值有所不同。

具有NULL值的字段是没有值的字段。非常重要的是要理解NULL值与零值或包含空格的字段是不同的。

10 * NULL          -- Result is NULL

空值(SQL)

SQL空值

处理NULL值


2

带有NULL值的字段是没有值的字段。非常重要的是理解,NULL值与零值或包含空格的字段是不同的。

如果表中的某一列是可选的,我们可以在不向该列添加值的情况下插入新记录或更新现有记录。这意味着该字段将保存为NULL值。

NULL值与其他值的处理方式不同。

NULL用作未知或不适用的值的占位符。 在此处了解更多信息。


2

NULL是一个关键字,用于表示未知/缺失数据。

假设您的表中有一个可选列。您可以插入新记录或更新现有记录而不向此列添加值。这意味着该字段将保存为NULL值。

请查看此处以获取更多详细信息。


1

Null实际上不是空的,但被视为未知值,来自文档

从概念上讲,NULL表示“缺少未知值”,并且它与其他值有些不同。

您可以在这里阅读更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接