Null

SQL中表的任何列都允許空值嗎?

  • November 1, 2018

我對空值有疑問。因此,請您簡要解釋一下什麼是 sql 中的空值,我們可以在 sql 表中的任何位置使用空值嗎?

允許空值

使用 PRIMARY KEY 約束或 IDENTITY 屬性定義的列不能允許空值。

列的可空性決定了表中的行是否可以包含該列的空值。空值或 NULL 不同於零 (0)、空白或零長度字元串,例如“”。NULL 表示沒有輸入。NULL 的存在通常意味著該值是未知的或未定義的。

Microsoft SQL Server 對 NULL 的定義:

NULL 值表示該值未知。NULL 值不同於空值或零值。沒有兩個空值是相等的。兩個空值之間或 NULL 與任何其他值之間的比較返回未知,因為每個 NULL 的值都是未知的。

Null 值通常表示數據未知、不適用或稍後將添加數據。例如,在客戶下訂單時可能不知道客戶的中間名首字母。

SET ANSI_NULLS 設置可以改變 NULL 的行為。在未來的版本中,此設置將預設為 ON,您將無法將其關閉。此處的詳細資訊: https ://docs.microsoft.com/en-us/sql/t-sql/statements/set-ansi-nulls-transact-sql

這是一篇深入探討 NULL 的文章。 https://www.simple-talk.com/sql/t-sql-programming/how-to-get-nulls-horribly-wrong-in-sql-server/

這裡很少有 TSQL 中的 NULL 範例。

引用自:https://dba.stackexchange.com/questions/172308