primary
,unique
和foreign key constraints
以及indexes
之间有什么区别?
我在Oracle 10g
和SQL Server 2008
答案 0 :(得分:25)
主键和唯一键是实体完整性约束
主键允许唯一标识表中的每一行,并确保不存在重复行且不输入空值。
唯一键约束用于防止表行中的键值重复并允许空值。 (在oracle中,一个null不等于另一个null)。
请参阅Differences between INDEX, PRIMARY, UNIQUE, FULLTEXT in MySQL?
答案 1 :(得分:24)
主键:唯一标识每一行 它不能为空。 它不能重复。
外键: 创建两个表之间的关系。 可以为null。 可以是重复的
答案 2 :(得分:7)
以下是一些参考资料:
Primary & foreign key Constraint.
另一方面,主键:主键是字段 或唯一的字段组合 识别表中的记录,这样 可以找到个人记录 没有困惑。
外键:外键(有时候 称为引用键)是一个关键 用于将两个表链接在一起。 通常,您使用主键 从一个表中的字段并插入它 进入另一张桌子 外键(它仍然是主键 关键在原表中。)
Index是一个可以应用于某些列的属性,以便可以加快在这些列上完成的数据检索。
答案 3 :(得分:4)
键/索引:键是LOGICAL数据库设计的一个方面,索引是PHYSICAL数据库设计的一个方面。密钥对应于完整性约束,索引是物理记录在执行这些约束时可以有用的值的技术。
主要/外来:“主要”键是一组属性,其值必须形成在整个表中唯一的组合。可以存在多个这样的集合(> 1个密钥),并且单词“primary”是早期设计者被迫选择这些多个密钥中的一个作为“最重要/相关的密钥”的残余。 ”。其原因主要是与外键相结合:
与“主”键一样,“外来”键也是一组属性。这些属性的值必须形成一个组合,该组合是引用表中的现有主键值。我不清楚这条规则今天在SQL中究竟有多严格。无论如何,术语仍然存在。
唯一:用于表示索引不能接受重复条目的关键字。独特的索引显然是强制执行主键的绝佳方法。如果在LOGICAL设计的背景下使用“独特”这个词,它就是多余的,草率的,不必要的和令人困惑的。键(主键,即)根据定义是唯一的。
答案 4 :(得分:3)
1) primary key
是一组一个或多个属性,用于唯一标识关系中的元组。
2) foreign key
是来自关系方案的一组属性,可以从另一个关系方案中唯一地标识元组。
答案 5 :(得分:3)
答案 6 :(得分:1)
主键主要是防止重复并显示列的唯一性 外键主要表示两个表的关系