`
kavy
  • 浏览: 888264 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle中唯一约束和唯一索引,PK,FK,UK.CK

 
阅读更多
PK 主键 Primary Key :http://baike.baidu.com/view/68467.htm
FK 外键 Foreign key :http://baike.baidu.com/view/703558.htm
UK 唯一 Unique Key :http://baike.baidu.com/view/1550298.htm
CK 检查 Check Key :http://msdn.microsoft.com/zh-cn/library/wkya25y6(VS.80).aspx

 

Oracle中唯一约束和唯一索引的区别

在使用TOAD来操作Oracle数据库时,会注意到创建约束时有Primary Key、Check、Unique和Foreign Key四种类型的约束,这与SQL Server中的约束没有什么区别,这里的Check约束除了用于一般的Check约束外,在Oracle中也用于非空约束的实现。也就是说如果一个字段不允许为空,则系统将会创建一个系统的Check约束,该约束定了某字段不能为空。

image

除了约束,还有另外一个概念是索引,在TOAD中创建索引的界面如下:

image

我们可以注意到在唯一性组中有三个选项:不唯一、唯一和主键。那么创建索引时的唯一、主键与创建约束时候的唯一约束和主键约束有什么区别呢?

这里的可能容易产生误解,其实创建主键的结果是一样的,不管是在创建约束时创建还是创建索引时创建,都会创建一个主键约束和对应的一个唯一索引。

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

  • 创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。
  • 创建唯一索引只会创建一个唯一索引,不会创建Constraint。

也就是说其实唯一约束是通过创建唯一索引来实现的。对于前端开发人员来说这两者有什么区别吗?好像没有。都是不能插入重复的值。在删除时这两者也有一定的区别,删除唯一约束时可以只删除约束而不删除对应的索引,所以对于的列还是必须唯一的,而删除了唯一索引的话就可以插入不唯一的值。

初学Oracle个人浅薄之见,若有错,还望大家见谅。

 

转自:http://www.cnblogs.com/studyzy/archive/2010/08/23/1806806.html

分享到:
评论

相关推荐

    oracle约束和索引笔记

    主键约束同时包含了非空和唯一约束,不允许有重复或NULL值。 - **外键约束(FOREIGN KEY)**: 外键约束用于建立表之间的关系,确保引用完整性。一个表的外键字段是另一个表的主键字段的值。 - **检查约束(CHECK)...

    oracle创建表创建唯一索引

    在Oracle数据库管理系统中,创建表和唯一索引是数据库设计中的关键步骤,它们对于数据的组织、查询效率和数据完整性至关重要。以下将详细介绍如何创建学员信息表,创建唯一索引,以及如何修改表来添加主键和检查约束...

    ORACLE的索引和约束详解.pdf

    在Oracle中,索引和约束是数据库设计和管理的关键元素,它们对于数据的完整性、查询性能和安全性至关重要。以下是对这些概念的详细解释: **索引(Indexes)** 索引是一种特殊的数据结构,它能够加速对表中数据的...

    Oracle 约束错误约束错误

    常见的约束类型包括主键约束、外键约束、唯一性约束和检查约束等。在 Oracle 中,可以使用 ALTER TABLE 语句来创建、修改或删除约束。 在本文中,我们将讨论 Oracle 中的约束错误,特别是 ORA-02292 错误,该错误...

    Oracle数据库索引优化方法探析.pdf

    Oracle 数据库索引优化方法探析是指通过对 Oracle 数据库索引的分析和优化,以提高数据库的查询效率和性能。 Oracle 数据库索引是一种数据结构,用于快速访问数据库表的特定信息。通过索引的小 I/O 操作可以替代大的...

    Oracle数据库表建立字段唯一性的方法

    综上所述,Oracle数据库提供了多种确保字段唯一性的方法,包括唯一约束和唯一索引,它们在确保数据完整性、提高查询效率以及处理重复值方面都有各自的特点和适用场景。开发者可以根据具体需求和性能考虑选择合适的...

    Oracle唯一约束.txt

    本篇文章将详细探讨Oracle数据库中唯一约束的定义、创建方法以及相关的应用场景。 #### 一、唯一约束的定义 唯一约束(UNIQUE constraint)是Oracle数据库提供的用于限制表中某些列的值的唯一性的机制。它可以应用...

    oracle不走索引可能原因.docx

    Oracle数据库在执行SQL查询时,有时会选择不使用已经创建的索引,这可能是由于多种因素导致的。以下是一些常见的原因及其详细解释: 1. **INDEX SKIP SCAN**: 当创建了一个组合索引,但是查询只使用了索引的非第一...

    09 oracle的索引 PPT

    - 支持唯一性约束:Unique索引确保数据的唯一性。 2. 缺点: - 空间占用:索引需要额外的存储空间。 - 插入/更新/删除性能:索引需要维护,这可能会降低DML操作的速度。 - 维护成本:数据库管理员需要定期监控...

    Oracle数据库中的索引管理技术.pdf

    (4)where 子句和索引:Oracle 根据用户在 where 子句中的定义找出满足查询要求的索引项(如根据一条 SQL 语句中的 where 和 and 部分指明的表列),检查可用的索引,选择能提供最快结果的索引。 (5)使用索引...

    [Oracle]如何在亿级记录表中创建索引

    在Oracle数据库中处理亿级数据量的表时,合理的索引设计是优化查询性能的关键因素之一。索引能够加快数据检索的速度,减少I/O操作次数,但同时也可能会增加插入、更新或删除操作的成本。因此,在大规模数据表上创建...

    关于ORACLE数据库索引[文].pdf

    Oracle提供了两种类型的索引:唯一索引和非唯一索引。唯一索引确保索引列中的每一行都有一个独一无二的值,而非唯一索引则允许值的重复。例如,在创建表`charge`时,如果`recnum`列被设为主键,Oracle会自动创建一个...

    高效ORACLE之索引(完整).pdf

    在B*树群集索引中,键指向的是群集中的成员。群集是指一组具有相同主键或...在实际应用中,设计者应根据数据特性和查询需求合理选择索引类型,兼顾查询效率和DML操作的性能,以达到最佳的系统响应时间和资源利用率。

    oracle 索引创建.ppt

    Oracle数据库中的索引是提升查询性能的关键工具,它通过创建数据结构使得数据的查找、排序和连接操作更为高效。在“湖南电信Oracle培训之索引创建.ppt”中,我们可推断出讨论的重点是如何在Oracle数据库中创建和理解...

    数据库 创建索引 sql oracle

    根据索引的组织方式和存储结构,索引可以分为聚集索引、非聚集索引、唯一索引和复合索引等。 * 聚集索引:将表中的记录在物理数据页中的位置按索引字段值重新排序,再将重排后的结果写回到磁盘上。每个表只能有一个...

    oracle中索引的使用

    Oracle支持多种类型的索引,包括B树索引、位图索引、函数索引和唯一索引等。B树索引是最常见的索引类型,适用于大部分场景,其结构使得查找、插入和删除操作的时间复杂度较低。位图索引则适合于值分布稀疏的列,例如...

    Oracle优化全攻略一【Oracle 索引概念】.docx

    Oracle数据库的优化是数据库管理员和开发人员关注的重要领域,其中索引的概念和使用是关键的一环。本篇文章将深入探讨Oracle中的索引类型及其优化策略。 首先,索引是提升数据库查询速度的关键工具。在Oracle数据库...

    oracle-索引[定义].pdf

    Oracle数据库中的索引是提升查询效率的关键工具,它通过预排序和存储数据的特殊结构,使得数据检索更快。本文将详细解析Oracle中的几种主要索引类型:B*Tree索引、反向索引、降序索引以及位图索引。 1. **B*Tree...

    分区索引,本地索引,全局索引的区别

    - **唯一性约束**:本地索引只支持分区内的唯一性,如果要在表上设置唯一性约束,必须包含分区键列。 - **可用性**:相比全局索引,本地索引具有更高的可用性。这是因为对于分区表的操作(如truncate、move或shrink...

Global site tag (gtag.js) - Google Analytics