DBMS 中的主键17 Mar 2025 | 6 分钟阅读 DBMS 中有某些键用于不同的目的,其中最常见的是主键。 在本节中,我们将介绍主键 - 什么是主键,主键有什么用,我们还将通过一些示例来理解主键是如何工作的。 什么是主键主键是表的一组最小属性,其任务是唯一标识给定特定表的行(或称为元组)。 关系的主键是可能的候选键之一,数据库设计者认为它是主要的。选择它可以是为了方便、性能和许多其他原因。从候选键中选择可能的主键取决于以下条件。
创建主键约束的语法主键约束可以在列级别或表级别定义。 在列级别 在表级别 主键的属性
主键的用途如上所述,主键用于唯一标识表的行。因此,需要唯一标识的行,将键约束设置为该特定字段的主键。主键永远不能具有 NULL 值,因为主键的用途是唯一标识一个值,但如果没有值,它将如何维持。因此,设置了主键约束的字段不能为 NULL。此外,这完全取决于用户,用户可以添加或删除已应用的主键。 注意:一个表只能有一个主键,无论该表中有一列或多列。理解主键让我们通过一些示例来了解主键的作用和用途。通常,在数据库中,我们将主键应用于那些我们需要通过它们唯一标识其他数据库字段的元组或列。 例如:当我们在数据库中存储学生的注册详细信息时,我们发现注册号字段是唯一的,并将主键分配给该字段。同样,对于员工表,我们将主键设置在表的员工 ID 上。 让我们实际理解它 下面是名为 STUDENT_DETAILS 的表,其中 Roll_no、Name 和 Marks 是其指定属性。 ![]() 我们知道,在这三个属性中,Roll_no 属性是唯一可以标识表中其他两个属性的属性,因为每个学生在每个组织中都有一个唯一的学号。因此,我们可以将主键约束设置在 Roll_no 列上。 如果我们将 Name 设置为主键会怎样? 如果我们将主键设置在 Name 属性上,那将是无效的,因为两个或多个学生可以拥有相同的姓名。因此,如果我们将主键设置在 Name 上并尝试为两个学生输入相同的姓名,它将显示错误。这就是为什么我们不能将 Name 属性设置为主键。 如果我们将 Marks 设置为主键会怎样? 如果我们将主键设置在 Marks 属性上,那将是一种不恰当的方法,因为两个或多个学生可以在一门科目中获得相似的分数。因此,如果我们将 Marks 属性设置为主键,我们将无法为其他实体输入相同的分数。这就是为什么我们不能为 Marks 属性设置主键。 我们可以查看下表来理解它 杂项示例考虑另一个示例,我们有一个名为 PRODUCT_DETAILS 的表,其中包含以下属性 COMP_Id:我们可以从哪里购买不同产品的公司 ID。 Prod_Name:它包含我们购买的产品。 Prod_Id:每个产品都有一个识别号。 需要注意的点
我们可以通过查看下表更好地理解它 ![]() 定义主键让我们讨论如何在 STUDENT_DETAILS 表属性上设置主键 创建主键以下是在 STUDENT_DETAILS 表的 Roll_no 属性上创建主键的语法 这是 SQL 和 Oracle 服务器中使用的基本语法。 删除主键也可以使用 ALTER 和 DROP 命令从属性中删除设置的主键。 创建表后添加主键为了在创建表后设置主键,请使用 ALTER 命令并添加主键约束来完成。语法如下所示 我们以 Name 属性为例来理解语法。 因此,通过这种方式,我们可以在表上使用和设置主键。但是,定义主键的语法可能因不同类型的数据库而异。 下一主题DBMS 中的超键 |
我们请求您订阅我们的新闻通讯以获取最新更新。