Sqlite   发布时间:2022-05-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了UNIQUE和PRIMARY 约束的区别大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

PRIMARY KEY 约束

https://msdn.microsoft.com/zh-cn/library/ms191236.aspx

表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性。在创建或修改表时,您可以通过定义 PRIMARY KEY 约束来创建主键。

一个表只能有一个 PRIMARY KEY 约束,并且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束可保证数据的唯一性,因此经常对标识列定义这种约束。

如果为表指定了 PRIMARY KEY 约束,则 数据库引擎将通过为主键列创建唯一索引来强制数据的唯一性。当在查询中使用主键时,此索引还可用来对数据进行快速访问。因此,所选的主键必须遵守创建唯一索引的规则。

如果对多列定义了 PRIMARY KEY 约束,则一列中的值可能会重复,但来自 PRIMARY KEY 约束定义中所有列的任何值组合必须唯一。

如下图所示,Purchasing.Productvendor表中的ProductIDvendorID列构成了针对此表的复合 PRIMARY KEY 约束。这确保了ProductIDvendorID的组合是唯一的。

当进行联接时,PRIMARY KEY 约束将一个表与另一个表关联。例如,若要确定哪些供应商供应哪些产品,可以在Purchasing.vendor表、Production.Product表和Purchasing.Productvendor表之间使用一个三向联接。因为Productvendor包含ProductIDvendorID列,所以可通过与Productvendor的联系来访问Product表和vendor表。


UNIQUE和PRIMARY 约束的区别

http://www.cnblogs.com/hxsyl/archive/2012/12/24/2830500.HTML

定义了UNIQUE约束的字段中不能包含重复值,可以为一个或多个字段定义UNIQUE约束,因此,UNIQUE即可以在字段级也可以在表级定义,在UNIQUE约束的字段上可以包含空值.ORACLE自动会为具有PRIMARY KEY约束的字段(主码字段)建立一个唯一索引和一个NOT NulL约束,定义PRIMARY KEY约束时可以为它的索引; UNIQUED 可空,可以在一个表里的一个或多个字段定义;

   PRIMARY KEY不可空不可重复,在一个表里可以定义联合主键;简单的说,primary key = unique + not null
   unique就是唯一,当你需要限定你的某个表字段每个值都唯一,没有重复值时使用. 比如说,如果你有一个person_Info表,并且表中有个身份证的column,那么你就可以指定该字段unique.
从技术的角度来看,Primary Key和Unique Key有很多相似之处。但还是有以下异同:
  相同:它们都属于实体完整性约束.

  不同点:

  (1) 唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。
  (2) 可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的。但是,唯一性约束所在的列并不是表的主键列。
  (3) 唯一性约束强制在指定的列上创建一个唯一性索引。在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。

  (4)建立主键的目的是让外键来引用.

  (5)一个表最多只有一个主键,但可以有很多唯一键

大佬总结

以上是大佬教程为你收集整理的UNIQUE和PRIMARY 约束的区别全部内容,希望文章能够帮你解决UNIQUE和PRIMARY 约束的区别所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: