主键和唯一键之间的区别

我正在使用mysql数据库。 主键和唯一键之间有混淆。

请帮我在哪里创build主要和唯一的关键。 我的意思是在哪种情况下我们创build唯一的密钥或主键。

首要的关键:

  • 表中只能有一个主键
  • 在某些DBMS中,它不能为NULL – 例如MySQL添加NOT NULL
  • 主键是logging的唯一键标识符

独特的关键:

  • 一个表中可以有多个唯一的键
  • 唯一键可以有NULL
  • 它可以是一个候选键
  • 唯一键可以是NULL ,可能不是唯一的

唯一密钥(UK) :这是一列或一组列,可以识别连续的唯一性。

主键(PK) :它也是一列或一组列,可以识别一行中的唯一性。

因此,主键只是唯一键的另一个名称,但SQL Server中的默认实现对于主键和唯一键是不同的。

默认:

  1. PK创build一个Clustered索引,UK创build一个非Clustered索引。
  2. PK不为空,但英国允许空值(注:默认情况下)
  3. 在桌上只能有一个PK,但是可以有多个UK
  4. 您可以根据需要覆盖默认实现。

在决定是创造英国还是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.可修改性:您不能更改或删除主值,但可以使用唯一键值。

有关更多信息和示例:

http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html

主键必须是唯一的。

唯一的密钥不一定是主键 – 请参阅候选密钥 。

也就是说,表格上可能有多个列的组合,可以唯一地标识一个行 – 只有其中一个可以被选作主键。 其他人虽然是唯一的候选人的关键。

主键具有识别数据库行的语义。 因此,给定的表只能有一个主键,而可以有许多唯一的键。

同样的原因,主键不能为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,你必须去与主键。

要查看独特和主键访问之间的区别

简单主键是唯一的,不能为空,唯一可以为空,也可以不是唯一的。

  1. 查看屏幕截图以供参考

    使用主键数据默认情况下按照升序聚集索引**

    在Sql Server中查看屏幕截图 在这里输入图像描述

    默认情况下,主键是聚簇索引,数据库表中的数据按照聚簇索引的顺序进行物理组织,而默认情况下,唯一键是唯一的非聚簇索引。

  2. 我们在表中只能有一个主键,而在一个表中我们可以有多个唯一的键。

  3. 主键不能接受空值,而唯一键只能接受一个空值。

  4. 主键始终是唯一的,永不为空,而唯一键只能接受一个空值。