主键和唯一键的区别

主键和唯一键之间的关键区别

  • 一个表中只能有一个主键,而一个表中可以有多个唯一键。
  • 主键的目的是强制执行实体完整性;另一方面,唯一键的目的是强制执行唯一数据。
  • 在主键中,默认索引是聚集索引,而在唯一键中,默认索引是非聚集索引。
  • 主键不允许空列,而唯一键允许空列。
  • 在主键中,不允许重复键,而在唯一键中,如果一个或多个键部分为空,则允许重复键。

Difference Between Primary key and Unique key
主键和唯一键的区别

在这里,我分析了主键和唯一键之间的区别,并将全面评估它们的优缺点。

什么是主键?

主键约束是表中的一个或一组列,它唯一地标识表中的每一行。主键不能重复,这意味着同一个值不能在表中出现两次以上。

一个表只能有一个主键。主键可以在列级别或表级别定义。如果要创建复合主键,则应在表级别定义。

创建主键的示例

下面的示例描述了一个名为 student 的表。它包含五个属性:1) StudID,2) Roll No.,3) First Name,4) Last Name,5) Email。

学号属性永远不能包含重复值或空值。这是因为大学注册的每个学生都可以拥有唯一的学号。您可以轻松地使用学生的学号来标识表中的每一行。因此,它被认为是主键。

Example of Creating Primary Key
主键示例

主键的特性

根据我的观察,以下是主键的重要特性:

  • 主键实现表中的实体完整性。
  • 表中只能保留一个主键。
  • 主键包含一个或多个表列。
  • 列定义为非空。

为什么使用主键?

Primary Key

根据我的实践经验,以下是使用主键的重要原因:

  • 主键的主要目的是识别数据库表中的每一个记录。
  • 当您不允许某人输入空值时,您可以使用主键。
  • 如果删除或更新记录,将执行您指定的动作,以确保数据库数据的完整性。
  • 执行限制操作,以拒绝对父表进行删除或更新操作。
  • 当您在 DBMS 表中物理组织数据时,数据会按照聚集索引的顺序进行组织。

什么是唯一键?

唯一键是表中的一个或多个字段或列的集合,它们唯一地标识数据库记录。

唯一键与主键相同,但它允许为表列接受一个空值。它也不能包含相同的。唯一约束由其他表的外部键引用。

创建唯一键的示例

考虑同一个学生表,其中包含以下属性:1) StudID,2) Roll No.,3) First Name,4) Last Name,5) Email。

Stud ID 可以具有唯一约束,因为 Stud ID 列中的条目可以是唯一的,因为大学的每个学生都必须有一个唯一的 ID 号。如果学生转学,他/她将没有学生 ID。该条目可能有一个空值,因为唯一键约束中只允许一个空值。

Example of Creating Unique Key
唯一键示例

唯一键的特性

在此,我将概述唯一键的重要特性:

  • 您可以在表中定义多个唯一键。
  • 默认情况下,唯一键是非聚集唯一索引。
  • 它包含一个或多个表列。
  • 表列可以为空,但每个列最多只允许一个空值。
  • 唯一约束可以很容易地被外部键约束引用。

为什么使用唯一键?

以下是我推荐使用唯一键的重要原因:

  • 唯一键的目的是确保每个表记录的列中的信息是唯一的。
  • 当您允许用户输入空值时。
  • 唯一键的使用是因为它默认创建非聚集索引。
  • 当您需要将空值保留在列中时,可以使用唯一键。
  • 当表中的一个或多个字段/列唯一标识数据库表中的记录时。

主键和唯一键之间的区别

在我的分析中,以下是主键和唯一键之间的主要区别:

Difference between Primary Key and Unique key
主键 vs 唯一键
比较依据 主键 唯一键
键的数量 一个表中只能有一个主键 一个表中可以有多个唯一键
NULL 它不允许空列。 它允许空列。
索引 默认索引是聚集索引 默认索引是非聚集索引
目的 主键的目的是强制执行实体完整性。 唯一键的目的是强制执行唯一数据。
用途 它是一个 SQL 约束,允许您唯一地标识数据库表中的每个记录或行。 它是一个 SQL 约束,不允许将相同的值分配给数据库表中的两个隔离记录。
值修改 在主键中,不允许重复键。 在唯一键中,如果一个或多个键部分为空,则允许重复键。
语法

可以使用语法创建主键

CREATE TABLE Employee
(
ID int PRIMARY KEY, 
Name varchar(255), 
City varchar(150)
)

可以使用语法创建唯一键

CREATE TABLE Employee
(
ID int UNIQUE.
Name varchar(255) NOT NULL. City varchar(150)
)

您还可以探索:主键和外键的区别

如何选择主键或唯一键

  • 当有我们知道不应包含重复项的列时,唯一键更好。
  • 主键在您无法在表中保留空值时非常理想。当另一个表中有外键用于创建关系时,也可以使用它。