`
ginaduxuefang
  • 浏览: 89228 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

唯一性约束、主键约束、唯一索引的区别

阅读更多

1.主键约束(PRIMARY      KEY)
   主键用于唯一地标识表中的每一条记录
    可以定义一列或多列为主键
   主键列上没有任何两行具有相同值(即重复值)
   主键列上也不能为空值
2.唯一性约束(UNIQUE)
   唯一性约束用来限制不受主键约束的列上的数据的唯一性,
   即表中任意两行在  指定列上都不允许有相同的值。
   一个表上可以放置多个唯一性约束

3.唯一索引(INDEX)

   创建唯一索引可以确保任何生成重复键值的尝试都会失败。


   唯一性约束和主键约束的区别:
    (1).唯一性约束允许在该列上存在NULL值,而主键约束的限制更为严格,不但不允许有重复,而且也不允许有空值。
    (2).在创建唯一性约束和主键约束时可以创建聚集索引和非聚集索引,但在 默认情况下主键约束产生聚集索引,而唯一性约束产生非聚集索引

 

   约束和索引, 前者是用来检查数据的正确性,后者用来实现数据查询的优化,目的不同。

   唯一性约束与唯一索引有所不同:

   (1).创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。

   (2).创建唯一索引只会创建一个唯一索引,不会创建Constraint。

   也就是说其实唯一约束是通过创建唯一索引来实现的。

   在删除时这两者也有一定的区别:

   删除唯一约束时可以只删除约束而不删除对应的索引,所以对应的列还是必须唯一的,

   而删除了唯一索引的话就可以插入不唯一的值。

分享到:
评论

相关推荐

    主键索引与唯一索引的区别

    2、 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。 3、 唯一性索引列允许空值,而主键列不允许为空值。 4、 主键列在创建时,已经默认为空值 ++ 唯一索引了。 5、 一个表最多只能创建一个主键...

    MySQL 主键与索引的联系与区别分析

    主键一定是唯一性索引,唯一性索引并不一定就是主键。 所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据...

    MySQL索引之主键索引

    主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录。一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。 在MySQL中,InnoDB数据表的主键设计我们...

    ORACLE教材

    唯一性约束 CHECK约束 NOT NULL约束 利用Enterprise Manager管理约束 第八章:管理索引、视图与序列使用约束 索引概述 B树索引(默认) 位图索引 函数索引 视图 序列 利用OEM操作 第九章:备份与恢复...

    桌面运维HELPDESK常用面试题

    6. MySQL中InnoDB存储引擎和MyISAM存储引擎有什么区别 InnoDB支持事务,MyISAM不支持; InnoDB数据存储在共享表空间,...唯一索引:和普通索引类似,但是具有唯一性约束。 主键索引:特殊的唯一索引,不允许有空值。

    实现记录唯一性——-用健实现

    当为表指定primary key 约束时,oricle通过为主键列创建唯一索引强制数据的唯一性。当在查询中使用主键时,该索引还可以用来对数据进行快速访问。如果primary key 约束定义在不止一列上,则一列中的值可以重复,但...

    (mysql面试题)MySQL中的索引、主键和外键的概念及其作用及代码展示.txt

    - 唯一标识每一行数据,确保数据的唯一性; - 作为其他表的外键引用,实现表与表之间的关联; - 加速查询操作,通过主键可以快速定位到所需的数据。 3. 外键(Foreign Key): 外键是数据库表中用于与其他表...

    MySQL中主键索引与聚焦索引之概念的学习教程

    主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录。一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。 在MySQL中,InnoDB数据表的主键设计我们...

    初探SQL语句复合主键与联合主键

     上面的name和id字段组合起来就是你test表的复合主键 ,它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 ,一般情况下,主键的字段长度和字段数目要越少越好 。 这里就会...

    MySQL索引的基本语法

    2.唯一索引(UNIQUE):在普通索引的基础上增加了数据唯一性的约束,可以有多个 3.主键索引(primary key):主键索引在唯一索引的基础上增加了不为空的约束,也就是 NOT NULL+UNIQUE,只能有一个 4.全文索引(FULLTEXT)...

    如何通过索引让SQL查询效率最大化?

    前言 我们都知道SQL性能调优可以从两个维度去进行优化,一个逻辑查询优化,另一个是物理查询优化。...索引本身可以起到约束的作用,比如唯一索引,主键索引都是可以起到唯一性约束的。在数据表中,如果某个字段是唯一性

    主键与聚集索引

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

    掌握MySQL面试技巧.pptx

    2、MySQL索引:索引是MySQL中优化查询性能的重要手段,会影响到数据库的查询速度和数据唯一性等方面。因此,在面试过程中,需要掌握索引的各种类型以及创建、调整、删除等操作。 3、MySQL约束:约束是用来限制MySQL...

    索引的优点和缺点第1/2页

    第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有...

    database_consistency:查找模型架构和数据库约束之间不一致的工具

    目前,我们可以: 查找缺少的空约束( ) 查找缺少的长度验证( ) 查找缺少的状态验证( ) 查找缺少的唯一性验证( ) 为BelongsTo关联查找丢失的外键( ) 查找缺少的唯一索引以进行唯一性验证( ) 查找HasOne...

    MySQL高级面试题及答案,企业真面试题.md

    索引可以按照主键、外键、唯一性约束等创建,不同的索引类型适用于不同的查询需求。 解释一下索引的原理是什么? 索引的原理是将数据按照一定顺序排序并存储在一个有序的数据结构中,例如B树、B+树等。当查询数据时...

    SQLServe 重复行删除方法

    SQL Server 有各种强制执行实体完整性的机制,包括索引、唯一约束、主键约束和触发器。 尽管如此,在某些情况下还可能会出现重复的主键;如果出现此类情况,就必须清除重复主键。出现重复主键的情形之一是,在 SQL ...

    百度地图毕业设计源码-mysql:数据库/MySQL数据库学习

    唯一键:每张表中往往有多个字段需要具有唯一性,数据不能重复,但是在每张表中,只能有一个主键,因此唯一键用来解决表中多个字段需要具备唯一性的问题,唯一键的本质与主键差不多,唯一键默认允许字段为空,而且...

    SQL课内上机实验数据定义

    其中:Sno、Tno、Cno分别是表Students、表Teachers、表Courses的主键,具有唯一性约束,Scredit具有约束“大于等于0”; Reports中的Sno,Tno,Cno是外键,它们共同组成Reports的主键。 (3) 更改表Students:增加属性...

    Mysql下载安装

    数据库: 数据库是一些关联表的集合。 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 列: 一列(数据元素) ...与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

Global site tag (gtag.js) - Google Analytics