在关系数据库的设计中,主键是 字段或字段集,这使我们能够唯一地标识一条记录 。可以说,它就像该表的DNI。它是单个值或一组值,这将使我们能够区分特定的记录。我们可以在创建表时 ,使用CREATE TABLE语法或稍后通过在ALTER TABLE中添加规则 来定义主键 。
就其本身而言, 外键 是一个 字段或一组字段,它使我们能够将一个表中的记录与另一个(通常是另一个表中的)记录相关联 。例如,看经典商店数据库,其中有一个包含产品的表,每个产品都有一个代码(将作为主键),描述和价格。另一方面,您有一个表来记录销售情况,并且每个表,日期,时间和产品都可以有一个代码。为了标识该表中的产品,为了避免重复信息,最实用的方法是使用产品表的代码(第一个表的主键,该表中的外键成为外键)。
一个表可以通过不同的外键与多个表 建立关系,甚至可以引用自身 (递归外键)。与主键一样,我们可以在表创建语法中定义外键,也可以 稍后使用 ALTER TABLE定义外键 。
因此区别很简单: 主键标识表中的唯一记录。外键将一个表中一个记录中的数据与另一表中的数据或同一表中的不同记录相关联 。