我的工作
主键是唯一的,并且只有一个包含一个表。
表中可以包含许多唯一键。
在 SQL Server 中,主键不是 Nullable。但是,唯一键可能只包含一个空值。
我的问题:
实际上,在 SQL Server 中,主键不可为空。但是从理论上讲,当唯一键中允许 Null 值时,为什么我们不能在主键中只有一个 Null 值呢?
谢谢回答我的问题
很抱歉问了一个一般性问题,在阅读了答案后,我对 DB 中的空值有了一个清晰的认识。
此外,我对 C++、Jave 等编程语言感到困惑,其中 null 值可以比较。在做了一些工作之后,我明白 Null 在 SQL 中是不可比的。
在 C++ 等编程语言中,Jave...
Null==Null
返回 TRUE
但是,在 SQL
Null==Null
返回 FALSE,因为 Null 值是未知的,它可以是任何值。
作为键的一部分的任何属性都不能包含空值;如果一列可以为空,则它不是任何键的一部分。由 UNIQUE 或 PRIMARY KEY 约束定义的列集也不是键,除非它是最小超键且不可为空。
为什么键不能允许空值?有很多潜在的原因: