And*_*are 25
主键是表上的唯一字段,但在表将该行视为其键时,它是特殊的.这意味着其他表可以使用此字段为自己创建外键关系.
唯一约束仅表示特定字段必须是唯一的.
Gir*_*vil 12
TL; DR可以暗示PRIMARY KEY(唯一性,可引用,非零,聚类等),但不能明确使用UNIQUE.
我建议如果你是那种喜欢方便的编码器SELECT * FROM...而不必列出所有那些讨厌的专栏,那么PRIMARY KEY对你来说就是这样.
一个relvar可以有几个键,但我们只选择一个用于下划线并将其称为主键.选择是任意的,因此从逻辑的角度来看,主要概念并不是非常重要.然而,关键的一般概念非常重要!术语候选键意味着与键完全相同(即,候选的添加没有实际意义 - 它是由Ted Codd提出的,因为他将每个键视为被提名为主键的候选者)... SQL允许要声明为该表的键的表的列的子集.它还允许其中一个被提名为主键.将密钥指定为主要密钥可以带来一些与可能需要的其他约束相关的便利性
通常......将一个密钥单独输出作为主密钥(然后将所述relvar的任何其他密钥称为备用密钥).但是,是否一些关键是被选为主要的,如果是的话,哪一个基本上是心理问题,超出了关系模型的范围.作为一个良好的实践,大多数基础relvars可能应该有一个主键 - 但重复一下,这个规则,如果它是一个规则,实际上不是一个关系问题...强烈建议[对SQL用户] :对于基表,无论如何,使用PRIMARY KEY和/或UNIQUE规范来确保每个这样的表至少有一个密钥.
SQL和关系理论:如何 通过CJ Date 编写准确的SQL代码
在标准SQL中 PRIMARY KEY
UNIQUE).NOT NULL但你可以在创建列时明确指定(但你无论如何都应该避免空值!)FOREIGN KEY但您可以显式指定它们.在某些产品中PRIMARY KEY隐含表的聚簇索引,但您可以明确指定(您可能不希望主键成为聚簇索引!)
对于一些人来说 PRIMARY KEY,纯粹具有心理意义:
| 归档时间: |
|
| 查看次数: |
38920 次 |
| 最近记录: |