Sql 根据我的理解,当主键和唯一键实际上服务于相同的目的时,主键和唯一键有何不同?
主键实际上是一个不能为多个条目重复的键,所以就我所知,唯一键也是如此 比方说,我们将员工ID作为100名员工的主键,这意味着两名员工的员工ID不能也永远不能相同 但是,什么是唯一的关键?因为员工ID是每个员工的唯一标识符。我只知道主键不能满足Sql 根据我的理解,当主键和唯一键实际上服务于相同的目的时,主键和唯一键有何不同?,sql,primary-key,unique-key,Sql,Primary Key,Unique Key,主键实际上是一个不能为多个条目重复的键,所以就我所知,唯一键也是如此 比方说,我们将员工ID作为100名员工的主键,这意味着两名员工的员工ID不能也永远不能相同 但是,什么是唯一的关键?因为员工ID是每个员工的唯一标识符。我只知道主键不能满足Null值,而唯一键只能满足一个Null值 但这就是两者之间的区别吗?如果有人能理解,最好用一个代码示例 另外,在区分了两者之后,我们如何在单个数据集中定义两者?是否有我们必须遵循的设置规则。主键有三个属性: 该键在表的所有行中都是唯一的 键(或复合键的任
Null
值,而唯一键只能满足一个Null
值
但这就是两者之间的区别吗?如果有人能理解,最好用一个代码示例
另外,在区分了两者之后,我们如何在单个数据集中定义两者?是否有我们必须遵循的设置规则。主键有三个属性:
- 该键在表的所有行中都是唯一的
- 键(或复合键的任何组件)为
NULL
- 每张桌子只有一张
其他列或列的组合可以是唯一的且非空的。这些是候选主键。但是,一个表只有一个主键。我希望我的回答能澄清您的疑问
- 主键用作引用不同表的外键
- 但是,当我们实现大规模数据库时,我们需要将同一个表中的两个以上的键引用到不同的表中
如果你告诉我们你想要实现什么,你可能有机会得到比一般问题更好的答案。所有主键(它们描述的记录中从来没有外键)都是唯一键。并非所有的唯一键(可能是外键)都是主键。表上的约束取决于它记录的当前情况以及可能出现的情况。当一个列集合必须是唯一的时,我们会告诉DBMS,这样它就可以防止无效状态并进行优化。可以将一个唯一的非空列集声明为PK。如果不为NULL,则表中不能有该子代码的重复项,否则可以有,SQL Server中除外——这是非标准的。阅读特定的DBMS手册,了解PK声明附带的其他内容。否则,PK就没有什么特别的了。这是常见问题。PS每篇文章问1个(特定的、非重复的)问题。“一个空值”仅在SQL Server中存在&这与SQL标准相反,SQL标准允许多个空值。(可以使用标准行为声明索引。)