超键:
是一组单个或多个键,用于标识表中的行。
候选键:
是一组唯一标识表中元组的属性,可以理解为是一个没有重复属性的超级键,是超键的子集。
主键:
是表中的一个属性或一组属性,用于唯一标识该表中的每一行,是候选键的子集。
经典误区:
- 主键只能是包含一个属性?
- 候选键是一个没有多余属性的超级键,所以也只能包含一个属性?
解答:主键是表中的一个字段,它唯一地标识数据库表中的每一行(Record)。主键必须包含唯一的值。主键列不能有NULL值。一个表只能有一个主键,主键可以由单个或多个属性组成。当多个字段用作一个主键时,它们被称为复合键或联合主键。如果一个表在任何字段上定义了一个主键,那么不能有两个记录具有相同的字段值。
参考引用: