SQL Server 唯一键17 Mar 2025 | 5 分钟阅读 唯一键是 SQL Server 中的一种约束。此约束确保我们不能在列中输入重复值。这意味着列中存储的数据在表中的行之间是唯一的。我们可以对单个列和多个列创建唯一键。例如,“student”表中的学生电子邮件地址和滚动号码应该是唯一的。此外,“Employee”表中的员工联系号码也应该是唯一的。 唯一键允许在表中插入 null 值。尽管它接受 null 值,但 SQL Server 每个列只允许一个 null 值。它维护用于在表中存储各种值的列或列集的完整性。 唯一键的必要性我们出于以下原因使用唯一键:
如何在表中创建唯一键?SQL Server 提供两种创建表唯一键的方法: 1. 我们可以使用以下语法创建单个唯一键列 2. 我们可以使用以下语法创建多个唯一键列 注意:在创建表时提供约束名称是明智的。如果我们不提供约束名称,SQL Server 将自动生成其名称。示例让我们通过一个例子来理解如何在表中创建唯一键。下面的语句创建一个名为“student”的表,其中包含唯一键 接下来,我们将插入一些记录以了解此约束的工作原理 执行该语句将成功将记录添加到表中,因为未找到重复项。输出如下: ![]() 让我们向表中插入另一条记录 执行该语句将抛出错误,因为 ID 列的值 1 已被插入。输出如下: ![]() 现在,我们将了解如何在表中定义多个唯一键。以下语句将在 'student_info' 表的多个列上创建唯一键 执行该语句将为滚动号码和电子邮件列定义唯一键。我们可以按如下方式验证它: ![]() 如何向现有列添加唯一约束?SQL Server 提供 ALTER 命令向现有列添加唯一约束。当我们向表中的现有列或列集添加唯一键时,SQL Server 会检查这些列中的现有数据,以确保所有值都是唯一的。如果检测到重复数据,则会生成错误,并且不会添加唯一约束。 我们可以使用以下语法向表中添加唯一约束: 示例 假设我们使用以下语句创建了一个名为 persons 的表 创建表后,我们需要向此表添加唯一约束。在这种情况下,以下 ALTER 语句将向 email 列添加唯一约束: 类似地,以下语句将向 phone 列添加唯一键: 我们可以按如下方式验证唯一约束,该约束显示已成功添加 uniq_email 和 uniq_phone 键: ![]() 如何从表中删除唯一键?SQL Server 使用 ALTER TABLE 语句从表中删除唯一键。我们可以使用以下语法删除唯一键: 示例 假设我们想从 person 表中删除 uniq_phone 唯一约束。我们可以按以下语句执行此操作: 验证表,我们看到 uniq_phone 已成功删除: ![]() 如何修改唯一键?SQL Server 不提供任何直接查询来修改唯一键。因此,如果我们想修改唯一键,我们必须先删除该键,然后再重新创建它来更新它。 唯一键与主键有何不同?我们知道唯一键和主键约束都保证了数据的唯一性。但是,当我们要保证非主键列或列集的唯一性时,应该使用唯一键而不是主键。它们之间的主要区别在于,主键标识表中的每个记录,而唯一键除了 NULL 值外,还可以防止列中出现重复条目。以下是一些更多差异:
以下示例解释了它们的区别,我们在其中插入 email 列值为 NULL 的记录: 让我们使用以下查询向 email 列插入另一个 NULL 值: SQL Server 抛出错误消息: ![]() 结论本文将全面概述唯一键约束。它解释了如何使用 SQL Server 唯一键来保证列或列组中的数据是唯一的。此外,唯一键与主键的区别。 |
我们请求您订阅我们的新闻通讯以获取最新更新。