主键和唯一键之间的区别
我正在使用mysql数据库。 主键和唯一键之间有混淆。
请帮我在哪里创build主要和唯一的关键。 我的意思是在哪种情况下我们创build唯一的密钥或主键。
首要的关键:
- 表中只能有一个主键
- 在某些DBMS中,它不能为
NULL
– 例如MySQL添加NOT NULL
- 主键是logging的唯一键标识符
独特的关键:
- 一个表中可以有多个唯一的键
- 唯一键可以有
NULL
值 - 它可以是一个候选键
- 唯一键可以是
NULL
,可能不是唯一的
唯一密钥(UK) :这是一列或一组列,可以识别连续的唯一性。
主键(PK) :它也是一列或一组列,可以识别一行中的唯一性。
因此,主键只是唯一键的另一个名称,但SQL Server中的默认实现对于主键和唯一键是不同的。
默认:
- PK创build一个Clustered索引,UK创build一个非Clustered索引。
- PK不为空,但英国允许空值(注:默认情况下)
- 在桌上只能有一个PK,但是可以有多个UK
- 您可以根据需要覆盖默认实现。
在决定是创造英国还是PK时,这取决于你的目标是什么。 比如“如果有三个人的团队,那么他们都是同龄人,但是他们中的一个将会是一对同龄人:PK和英国有类似的关系。” 我build议阅读这篇文章:作者给出的例子可能不太合适,但试图得到一个整体的想法。
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
对于一个组织或一个企业来说,有这么多的物理实体(如人,资源,机器等)和虚拟实体(他们的任务,交易,活动)。 通常,业务需要logging和处理这些业务实体的信息。 这些业务实体通过密钥在整个业务域内被识别。
按照RDBMS的预期,密钥(又名候选密钥)是唯一标识实体的一个值或一组值。
对于数据库表,有太多的密钥存在,可能有资格使用主键。 因此,所有的密钥,主键,唯一密钥等统称为候选密钥。 但是,DBA从候选键中select一个用于searchlogging的键称为主键。
主键和唯一键之间的区别
1.行为:主键用于标识表中的行(logging),而唯一键则用于防止列中出现重复值(空条目除外)。
2.索引:默认情况下,SQL引擎在主键(如果不存在)上创build聚簇索引,在唯一键上创build非聚簇索引。
3.可空性:主键不包括空值,而唯一键可以。
4.存在:一个表最多只能有一个主键,但可以有多个唯一键。
5.可修改性:您不能更改或删除主值,但可以使用唯一键值。
有关更多信息和示例:
主键必须是唯一的。
唯一的密钥不一定是主键 – 请参阅候选密钥 。
也就是说,表格上可能有多个列的组合,可以唯一地标识一个行 – 只有其中一个可以被选作主键。 其他人虽然是唯一的候选人的关键。
主键具有识别数据库行的语义。 因此,给定的表只能有一个主键,而可以有许多唯一的键。
同样的原因,主键不能为NULL(至less在Oracle中,不知道其他数据库)
由于它确定了行,它永远不会改变。 改变主键势必造成严重的痛苦,可能永恒的诅咒。
因此,在大多数情况下,您需要一些人为的主键,不用于识别表中的单个行。
另一方面,唯一的按键可能会随意改变。
主键是唯一键。
每个表最多只能有一个主键,但它可以有多个唯一键。 主键用于唯一标识表格行。 主键不能为NULL
因为NULL
不是一个值。
主键和唯一键之间的区别
您可以从以下urlfind详细信息: http : //www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
主键和唯一键都用于强制列的唯一性。 那么,你什么时候select一个呢?
一个表只能有一个主键。 如果你想在2列或更多列上执行唯一性,那么我们使用唯一的键约束。
主键约束和唯一键约束之间的区别?
1.表格只能有一个主键,但有多个唯一键
2.主键不允许null
值,而唯一键允许一个null
值
Alter Table Table_Name Add Constraint Constraint_Name Unique/Primary Key(Column_Name)
如果你的数据库devise是这样的,他们不需要外键,那么你可以去与唯一键( 但记得唯一键允许单个空值 )。
如果你的数据库需求外键然后你离开没有select,你必须去与主键。
要查看独特和主键访问之间的区别
简单主键是唯一的,不能为空,唯一可以为空,也可以不是唯一的。
-
查看屏幕截图以供参考
使用主键数据默认情况下按照升序聚集索引**
在Sql Server中查看屏幕截图
默认情况下,主键是聚簇索引,数据库表中的数据按照聚簇索引的顺序进行物理组织,而默认情况下,唯一键是唯一的非聚簇索引。
-
我们在表中只能有一个主键,而在一个表中我们可以有多个唯一的键。
-
主键不能接受空值,而唯一键只能接受一个空值。
-
主键始终是唯一的,永不为空,而唯一键只能接受一个空值。