数据库中键的分类和区别

分类:

  1. 主键(Primary Key)

    • 主键用于唯一标识表中的每一行记录。
    • 主键的值必须是唯一的且不能为空(即NOT NULL)。
    • 一个表只能有一个主键,但主键可以由一个或多个字段组成(复合主键)。
  2. 外键(Foreign Key)

    • 外键用于建立和加强两个表数据之间的链接。
    • 外键的值必须引用另一个表中的主键值或唯一键值。
    • 外键用于维护引用完整性,确保数据的一致性和准确性。
  3. 唯一键(Unique Key)

    • 唯一键用于确保表中的某一列或一组列的值是唯一的。
    • 唯一键的值可以为空(NULL),但每行的唯一键值必须唯一。
    • 一个表可以有多个唯一键。
  4. 候选键(Candidate Key)

    • 候选键是可以唯一标识表中每一行记录的字段或字段组合。
    • 候选键是唯一键的一种,通常用于选择主键。
    • 候选键必须满足唯一性和非空性(即NOT NULL)。
  5. 超键(Super Key)

    • 超键是可以唯一标识表中每一行记录的字段或字段组合。
    • 包含候选键的所有字段组合都是超键。
    • 超键可以包含多余的字段,而候选键不允许。
  6. 复合键(Composite Key)

    • 复合键是由两个或多个字段组合而成的键。
    • 复合键可以作为主键或唯一键。
    • 使用复合键可以更好地满足某些业务需求,确保记录的唯一性。
  7. 替代键(Alternate Key)

    • 替代键是除了主键之外的其他候选键。
    • 一个表可以有多个替代键。
    • 替代键可以用于在不同的上下文中唯一标识记录。
  8. 普通键(Non-Key)

    • 普通键是指不用于唯一标识记录的字段。
    • 这些字段通常用于存储数据,但不具有唯一性或引用性。

区别

主键(Primary Key)

  • 定义:用于唯一标识表中的每一行记录。
  • 唯一性:值必须唯一。
  • 非空性:不能为空(即NOT NULL)。
  • 数量:一个表只能有一个主键,但主键可以由一个或多个字段组成(复合主键)。

外键(Foreign Key)

  • 定义:用于建立和加强两个表数据之间的链接。
  • 引用:值必须引用另一个表中的主键值或唯一键值。
  • 用途:维护引用完整性,确保数据的一致性和准确性。
  • 数量:一个表可以有多个外键。

唯一键(Unique Key)

  • 定义:用于确保表中的某一列或一组列的值是唯一的。
  • 唯一性:值必须唯一。
  • 非空性:可以为空(NULL),但每行的唯一键值必须唯一。
  • 数量:一个表可以有多个唯一键。

候选键(Candidate Key)

  • 定义:是可以唯一标识表中每一行记录的字段或字段组合。
  • 唯一性:值必须唯一。
  • 非空性:不能为空(即NOT NULL)。
  • 用途:通常用于选择主键。
  • 数量:一个表可以有多个候选键。

超键(Super Key)

  • 定义:是可以唯一标识表中每一行记录的字段或字段组合。
  • 包含性:包含候选键的所有字段组合都是超键。
  • 数量:一个表可以有多个超键。
  • 特点:超键可以包含多余的字段,而候选键不允许。

复合键(Composite Key)

  • 定义:由两个或多个字段组合而成的键。
  • 用途:可以作为主键或唯一键。
  • 数量:一个表可以有一个复合主键。
  • 特点:使用复合键可以更好地满足某些业务需求,确保记录的唯一性。

替代键(Alternate Key)

  • 定义:除了主键之外的其他候选键。
  • 用途:可以用于在不同的上下文中唯一标识记录。
  • 数量:一个表可以有多个替代键。

普通键(Non-Key)

  • 定义:是指不用于唯一标识记录的字段。
  • 用途:通常用于存储数据,但不具有唯一性或引用性。
  • 数量:一个表可以有多个普通键。

主要区别总结

  • 唯一性

    • 主键和唯一键都要求值是唯一的。
    • 候选键和替代键也要求值是唯一的。
  • 非空性

    • 主键和候选键不能为空。
    • 唯一键可以为空(NULL),但每行的唯一键值必须唯一。
  • 数量

    • 一个表只能有一个主键,但可以是一个复合主键。
    • 一个表可以有多个唯一键。
    • 一个表可以有多个候选键。
    • 一个表可以有多个外键。
    • 一个表可以有多个替代键。
    • 一个表可以有多个普通键。
  • 用途

    • 主键用于唯一标识每一行记录。
    • 外键用于维护表与表之间的引用关系。
    • 唯一键和候选键用于确保数据的唯一性。
    • 替代键是主键的备选方案。
    • 普通键用于存储数据,不具有唯一性或引用性。

你可能感兴趣的:(数据库,java,sql)