主键和候选键之间的区别

时间:2013-05-11 20:46:12

标签: sql key rdbms

我已经阅读了有关RDBMS中的密钥的信息。 https://stackoverflow.com/a/6951124/1647112 但是我无法理解使用候选键的必要性。如果只需要主键来唯一标识表中的行,为什么需要候选键? 请举出一个很好的例子来说明各种键的差异和重要性。 提前致谢。

2 个答案:

答案 0 :(得分:3)

一个表可以有一个或多个候选键 - 这些键是唯一标识表中一行的键。

但是,只能选择其中一个候选键作为主键。

答案 1 :(得分:0)

从上面的答案我得出了这个结论

超级键(用于选择一行或多行的一个或多个属性)

                        ||
                        \/

候选键(超级用于选择单行的一个或多个属性)

                        ||  
                        \/

主键(用于选择单行的候选键中的一个属性)

我是对的吗?