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

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

阅读更多

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

3.唯一索引(INDEX)

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


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

 

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

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

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

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

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

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

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

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

分享到:
评论

相关推荐

    MySQL的主键与唯一索引约束

    相反,MyISAM存储引擎不支持事务,因此当违反唯一性约束时,MySQL会中断操作,这可能导致不期望的结果。比如,一个`UPDATE`语句可能只部分执行,因为违反约束的行会停止执行,导致其他符合条件的行未被修改。这种...

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

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

    主键、外键、唯一、约束区别

    3) **索引类型**:唯一性约束默认创建非聚集索引,而主键创建的通常是聚集索引,这影响了数据在磁盘上的存储方式。 最后,**约束(Constraint)**是对表中数据的一种限制,它确保了数据的完整性。约束可以是主键、...

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

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

    数据库,索引,主键,约束,sql

    它不允许重复且不能为空,确保了数据的唯一性和完整性。主键的选择通常基于业务需求,例如,身份证号、员工编号等。在数据库设计中,良好的主键选择有助于优化查询性能和数据管理。 约束则用来定义和维护数据的完整...

    键、索引、约束及其区别

    - **唯一性约束 (Unique Constraint)**:确保指定列的值的唯一性。 - **非空约束 (Not Null Constraint)**:确保指定列不能为空。 - **默认值约束 (Default Constraint)**:为指定列提供默认值。 - **检查约束 ...

    第B章-MySQL索引与数据完整性约束优秀文档.ppt

    数据完整性约束可以分为几种类型,包括主键、唯一性约束、检查约束和参照完整性约束。 主键约束: 主键约束是指在一个表中,每一行的主键都必须是唯一的。主键约束可以确保数据的唯一性和完整性。 唯一性约束: ...

    goldengate同步无主键无唯一索引表的问题以及解决方案.docx

    GoldenGate 同步无主键无唯一索引表的问题及解决方案 在数据同步中,无主键无唯一索引表的同步问题是常见的困扰, GoldenGate 作为一款优秀的数据同步工具,也遇到了这个问题。因此,本文将讨论 GoldenGate 同步无...

    第B章-索引与数据完整性约束优秀文档.ppt

    索引与数据完整性约束 索引是一种数据结构,旨在加速数据库检索的速度。索引可以看作是一个指针,指向数据库表中的特定数据。...在创建表时,可以指定主键约束、唯一性约束、检查约束和参照约束等数据完整性约束。

    MySQL索引之主键索引

    总结来说,主键索引和辅助索引在MySQL中扮演着不同的角色,主键负责保证数据的唯一性和表的物理组织,而辅助索引提供了对不同列的快速访问。合理设计和使用这两种索引,能显著提升数据库的查询效率。在实际应用中,...

    mysql主键和唯一索引的区别(csdn)————程序.pdf

    总的来说,主键和唯一索引都是为了提高数据的唯一性和查询效率,但它们的约束程度、允许的NULL值、在外键中的使用以及在查询优化中的地位有所不同。在设计数据库时,理解这些差异并根据实际需求合理选择,对于构建...

    oracle约束和索引笔记

    - **唯一索引(Unique Index)**: 确保索引键的唯一性,与唯一约束相似,但不强制非空。 - **分区索引(Partitioned Index)**: 将大型表的索引分割成更小、更易管理的部分,提高大规模数据的查询性能。 - **复合...

    完整性约束,特别是参照完整性约束(主外键)

    主键约束确保了每个实体的唯一性,防止了重复数据的出现。 2. **参照完整性**:也称为外键约束,用于连接两个表,保证一个表中的外键值必须存在于另一个表的主键值中。这样,当对主表进行操作时,会影响到从表中的...

    oracle创建表创建唯一索引

    以下将详细介绍如何创建学员信息表,创建唯一索引,以及如何修改表来添加主键和检查约束。 首先,我们来理解"创建学员信息表"。在Oracle中,我们可以使用`CREATE TABLE`语句来创建新的表。一个典型的学员信息表可能...

    SQL 2005中约束和索引的作用与联系.pdf

    主键约束标识一列或一组列,确保其唯一性和不可变性,不允许有空值。唯一约束则保证列中所有值的唯一性,但允许空值。 2. **索引的功能及概念**: 索引是数据库中的特殊数据结构,用于快速定位和访问数据行。索引...

    SQLServer主键和唯一约束的区别

    这意味着即使只有一个NULL值,该约束仍然满足唯一性。在创建唯一约束时,你可以自定义约束的名称,例如`UQ_Name`。唯一约束可以在同一表中定义多个,不像主键那样受到数量限制。然而,由于唯一约束的列可以包含NULL...

    如何在oracle中查询所有用户表的表名、主键名称、索引、外键等

    与查询主键信息类似,这里通过 `constraint_type = 'U'` 来筛选出唯一性约束。这可以帮助我们了解哪些列是具有唯一性的,这对于理解表结构至关重要。 ### 4. 查询所有用户表的外键信息 #### SQL 语句: ```sql -- ...

    MySQL索引.xmind

    常规索引是最基本的索引类型,它没有唯一性约束,只是用于加快查询速度。 全文索引(FULLTEXT): 全文索引用于全文搜索,通常用于InnoDB或MyISAM表中的文本数据。它允许快速地查找文本中的关键词。 空间索引...

    ORACLE教材

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

Global site tag (gtag.js) - Google Analytics