Anu*_*nuj 235 database primary-key unique-key
我正在使用mysql数据库.我在主键和唯一键之间存在混淆.
请帮我在哪里创建主键和唯一键.我的意思是在哪种情况下我们创建唯一的密钥或主键.
小智 214
首要的关键:
NULL- 例如MySQL添加NOT NULL独特的关键:
NULL值NULL也可以不是唯一的小智 74
唯一键(英国):它是一列或一组列,可以识别连续的唯一性.
主键(PK):它也是一列或一组列,可以标识一行中的唯一性.
因此,主键只是唯一键的另一个名称,但SQL Server中的默认实现对于主键和唯一键是不同的.
默认情况下:
在决定是创建英国还是PK时,这取决于你的目标.它遵循一个类比,如果"如果有一个由三人组成的团队,那么所有人都是同龄人,但他们中的一个将成为同伴:PK和英国有着相似的关系." 我建议阅读这篇文章:作者给出的例子可能看起来不合适,但试图找到一个整体的想法.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
nay*_*ies 40
对于组织或企业,有如此多的物理实体(例如人员,资源,机器等)和虚拟实体(他们的任务,交易,活动).通常,业务需要记录和处理这些业务实体的信息.这些业务实体通过密钥在整个业务域中标识.
根据RDBMS预期,Key(又名候选密钥)是唯一标识实体的值或值集.
对于数据库表,存在许多密钥,并且可能符合主键的条件.因此,所有密钥,主密钥,唯一密钥等统称为候选密钥.但是,DBA从候选键中选择一个用于搜索记录的键称为主键.
主键和唯一键之间的区别
1.行为: 主键用于标识表中的行(记录),而唯一键用于防止列中的重复值(空条目除外).
2.索引: 默认情况下,SQL-engine在主键上创建聚簇索引(如果不存在),在Unique-key上创建非聚簇索引.
3.可为空性:主键不包括空值,而唯一键可以.
4.存在:一个表最多只能有一个主键,但可以有多个唯一键.
5.可修改性:您不能更改或删除主值,但唯一键值可以.
有关更多信息和示例:
Jen*_*der 16
主键具有标识数据库行的语义.因此,给定表只能有一个主键,而可以有许多唯一键.
同样出于同样的原因,主键不能为NULL(至少在Oracle中,不确定其他数据库)
因为它标识了它永远不会改变的行.改变主键必然会造成严重的痛苦,并可能导致永久的诅咒.
因此,在大多数情况下,您需要一些主键的人工ID,除了识别表中的单行外,它不用于任何内容.
另一方面,唯一键可能会根据需要进行更改.
Ome*_*r K 16
主键和唯一键之间的区别
Run Code Online (Sandbox Code Playgroud)+-----------------------------------------+-----------------------------------------------+ | Primary Key | Unique Key | +-----------------------------------------+-----------------------------------------------+ | Primary Key can't accept null values. | Unique key can accept only one null value. | +-----------------------------------------+-----------------------------------------------+ | By default, Primary key is clustered | By default, Unique key is a unique | | index and data in the database table is | non-clustered index. | | physically organized in the sequence of | | | clustered index. | | +-----------------------------------------+-----------------------------------------------+ | We can have only one Primary key in a | We can have more than one unique key in a | | table. | table. | +-----------------------------------------+-----------------------------------------------+ | Primary key can be made foreign key | In SQL Server, Unique key can be made foreign | | into another table. | key into another table. | +-----------------------------------------+-----------------------------------------------+
您可以从以下网址找到详细信息:http:
//www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
我知道这个问题已经有好几年了,但我想对此提供一个答案,解释为什么而不是如何
主键的目的:唯一标识数据库中的一行 => 一行表示由表建模的实体类型的单个实例。主键强制执行实体的完整性,也就是实体完整性。主键是一个聚集索引,即它定义了数据物理存储在表中的顺序。
唯一键的目的:好的,有了主键,我们就有了唯一标识一行的方法。但我有一个业务需求,另一列/一组列应该具有唯一值。好吧,从技术上讲,鉴于此列是唯一的,它可以成为强制执行实体完整性的候选者。但就我们所知,该列可能包含来自外部组织的数据,我可能怀疑其是否独一无二。我可能不相信它提供实体完整性。我只是让它成为满足我的业务需求的唯一键。
你去吧!