数据库的键 (KEY)

黎 浩然/ 3 7 月, 2022/ 数据库/DATABASE, 计算机/COMPUTER/ 0 comments

主键/超键/候选键/外键

在数据库设计中,主键、超键、候选键和外键是关系模型中的基本概念,它们用于定义表中的数据结构和完整性约束。以下是这些概念的详细解释:

主键

  • 定义:主键(Primary Key)是一列或多列的组合,其值能够唯一标识表中的每一行。
  • 特点
    • 每个表只能有一个主键。
    • 主键中的值必须是唯一的。
    • 主键列中的值不能为NULL。
    • 通常用来建立表与表之间的关系。
  • 示例 这里的 id 列就是主键。
CREATE TABLE Employee (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    department_id INT
);

超键

  • 定义:超键(Super Key)是一组列的集合,其值能够唯一标识表中的每一行。超键可以包含主键以及其他列。
  • 特点
    • 超键可能包含额外的列,这些列并不是唯一性所必需的。
    • 所有的主键都是超键,但并不是所有的超键都是(或包含)主键。
  • 示例 在表 Employee 中,(id) 和 (id, name) 都是超键。

候选键

  • 定义:候选键(Candidate Key)是一个最小的超键,去掉其中任何一列后,剩下的列不再是超键。
  • 特点
    • 一个表可以有多个候选键。
    • 候选键的值必须唯一且不能为 NULL。
    • 主键是从候选键中选出的一个。
  • 示例 如果 Employee 表中 name 列的值也唯一且非空,则 (id) 和 (name) 都是候选键。

外键

  • 定义:外键(Foreign Key)是一列或多列的组合,其值引用另一个表的主键,用于建立两个表之间的关联。
  • 特点
    • 外键的值可以重复。
    • 外键列中的值可以为 NULL。
    • 外键约束用于保持表之间的引用完整性。
  • 示例 这里的 department_id 列是 Employee 表的外键,它引用了 Department 表的 id 列。
CREATE TABLE Department (
    id INT PRIMARY KEY,
    dept_name VARCHAR(100)
);

CREATE TABLE Employee (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    department_id INT,
    FOREIGN KEY (department_id) REFERENCES Department(id)
);
Share this Post

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

*
*