我正在阅读有关主键的信息,并且在许多教程,技术博客等中,我发现主键可以为null的答案。我认为这是完全错误的,因为我能够在列中插入空值。 我想只有在列被声明为非null的情况下,主键才能具有非null的值。但这又不是主键的功能。
我的另一个问题是为什么我们有主键的概念,因为我发现主键和唯一键之间只有一个区别是“主键只能在一个列上声明而唯一键可以在多列上声明”。所以我的理解是,如果没有其他区别,为什么我们也不能将主键声明为唯一键。
答案 0 :(得分:5)
我想只有在列中主键才可以有一个非空值 声明为非null。但这又不是primary的功能 键。
主键不能为空值。根据主键的定义,它是 UNIQUE 和 NOT NULL 。
我的另一个问题是,为什么我们要有主键的概念 因为我发现主键和唯一键之间只有一个区别 就是“主键只能在一列上声明,而唯一 键可以在多列上声明”
这是完全错误的。您也可以在多列上创建主键,主键和唯一键之间的区别是主键不为空,唯一键可以具有空值。
主键的主要目的是识别行的唯一性,其中唯一键是为了防止重复,以下是主键和唯一键之间的主要区别。
主键:
NOT NULL
。CLUSTERED
个唯一索引。唯一键:
一个表上可以定义多个唯一键。
唯一键默认情况下会产生NONCLUSTERED
个唯一索引。
一个或多个列组成一个唯一键。
列可能为NULL
,但每列允许一个NULL
。
Foreign Key Constraint
可以引用唯一约束。
我建议您阅读此primary key and unique key
答案 1 :(得分:0)
您忘记了索引编制。当涉及到大数据以查找特定的原始数据时,需要逐条记录地遍历内存。为了克服这一点,存在索引的概念。主键对此有所帮助。因此,这将有助于您更快地访问数据。此后,有了二进制搜索的概念,它将进一步帮助完成该任务。
答案 2 :(得分:0)
主键是特殊的关系数据库表列(或列的组合),其指定用于唯一地标识所有表记录。
主键的主要功能是:
主键可以是现有的表列,也可以是数据库根据定义的顺序专门生成的列。
主键概念对于高效的关系数据库至关重要。没有主键和紧密相关的外键概念,关系数据库将无法工作。
主键,也称为主关键字,是关系数据库中每个记录唯一的键。
一个表只有一个主键。