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

在oracle中创建unique唯一约束(单列和多列)

阅读更多

oracle中的unique约束是用来保证表中的某一类,或者表中的某一类组合起来不重复的一种手段。我们在可以在创建表时或者创建好后通过修改表的方式来创建oracle中的unique约束。

 

下面是一些创建unique约束的例子:

 
create table unique_test
(id number,
fname varchar2(20),
lname varchar2(20),
address varchar2(100),
email varchar2(40),
constraint name_unique unique(fname,lname))

 

在这里我们建立了一个表unique_test,并将其中的fname和lname组合起来建立了一个唯一约束。

 

我们也还可以在表创建完成后手动的通过修改表的方式来增加约束,例如:
alter table unique_test
add constraint email_unique unique(email);

 

下面我们来往表里面插入数据,


insert into unique_test(id,fname,lname) values(1,’德华’,'刘’)

这一行可以正常的被插入

 

因为我们在建立表时曾把fname和lname联合起来作为一个约束,因为如果我们希望再次插入刘德华,

 
insert into unique_test(id,fname,lname) values(2,’德华’,'刘’)
是会出现如下错误的:
ORA-00001: 违反唯一约束条件 (SYS.NAME_UNIQUE)

 

但我们如果改为如下值:
insert into unique_test(id,fname,lname) values(2,’学友’,'张’);
又可以正常插入了。

 

有些朋友可能会有疑问,我们不是为email也建立的一个唯一约束吗?为什么这两行数据都没有为email列赋值,也就是或两行的email列都是空值,而插入也成功了呢?

 

这是因为一个空值(null)的含义是该列当前的状态是不存在,他永远不可能会与另外一个空值相等。所以也就不存在违反唯一约束之说了。

分享到:
评论
1 楼 小猪笨笨 2011-12-05  
不错,通俗易懂

相关推荐

    oracle索引.pdf

    此外,还有单列索引、多列索引和函数索引。函数索引允许对字段进行运算后再创建索引,这在某些特定查询中可以提高效率,但使用时需注意开启查询重写功能,并确保函数具有确定性。 应用索引的扫描方式包括INDEX ...

    大型数据库系统概论课件 第6章 Oracle9i数据库对象的管理(2).ppt

    索引存储了表中一列或多列的值,与这些值对应的ROWID。当执行查询时,Oracle9i通过索引找到ROWID,从而迅速获取所需数据。索引分为唯一索引和非唯一索引,前者确保数据的唯一性,通常与主键约束关联。创建表时,如果...

    常用oracle语句备忘

    你可以创建单列索引或多列索引,以及唯一索引和非唯一索引。索引的创建和管理也是数据库优化的重要方面。 11. **视图(View)** 视图是从一个或多个表中创建的虚拟表,可以简化复杂的查询并提供安全性。你可以使用...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    在创建表时,经常会创建该表的主键、外键、唯一约束、Check约束等  语法结构 create table 表名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) ...

    oracle课件pdf格式的

    9. **第9章 表和约束**:创建和管理表是数据库设计的基础,本章将介绍CREATE TABLE语句,以及约束(NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK)的作用和用法。 10. **第10章 其他数据库对象**:除了表...

    oracle学习资料

    - **唯一性约束**:`UNIQUE`确保列或列组合的唯一性,但允许为空。 - **外键约束**:`FOREIGN KEY`用于定义与另一张表的主键的联系。 - **检查约束**:`CHECK`用于定义某一列或整个表的约束条件。 - **缺省约束*...

    索引在Oracle中的应用深入分析

    单列索引是针对单个字段创建的,多列索引涉及两个或更多字段,而函数索引允许对字段应用函数后再建立索引,以优化特定的查询。创建函数索引时,需要注意设置query_rewrite_enabled为TRUE,并确保所使用的用户函数是...

    oracle 語法命令備忘

    这些只是Oracle SQL语法的冰山一角,实际应用中还有更多高级特性和管理技巧,如分区、物化视图、并行执行、表分区、触发器、约束等。对于开发者和DBA来说,深入理解Oracle SQL语法和数据库管理是至关重要的。如果...

    小菜鸟系列-Oralce的索引

    在Oracle中,索引分为B树索引、位图索引、函数索引和全局唯一索引等多种类型。 1. B树索引(B-Tree Index):这是最常见的索引类型,适用于单列或组合列的等值查询。B树索引通过构建多层节点的树形结构,使数据查找...

    oracle索引介绍(图文详解)

    在Oracle数据库中,索引是一种优化查询性能的关键工具。它们加快了数据检索速度,使得数据库管理系统(DBMS)能够更快地定位到所...在实际工作中,应根据业务需求和查询模式来创建和调整索引,以达到最佳的数据库性能。

    精通SQL--结构化查询语言详解

    8.3.2 group by子句根据多列组合行 150 8.3.3 rollup运算符和cube运算符 151 8.3.4 group by子句中的null值处理 153 8.3.5 having子句 153 8.3.6 having子句与where子句 154 8.3.7 select语句各查询子句总结 ...

    pl-sql 培训资料

    - **创建索引**:索引用于提高查询性能,`CREATE INDEX`用于创建单列或多列索引,可选`UNIQUE`关键字创建唯一索引。 - **删除索引**:使用`DROP INDEX`语句删除索引。 - **创建视图**:`CREATE VIEW`语句创建逻辑...

    SQL语句大全

    `CREATE INDEX`用于创建单列或多列索引,可选`UNIQUE`约束以确保唯一性。`DROP INDEX`用于删除索引。 9. **创建视图**: 视图是虚拟表,由`CREATE VIEW`定义,基于一个或多个表的SELECT语句。视图可用于简化复杂的...

    SQL自学通-21课

    9. 唯一性约束和主键约束:通过PRIMARY KEY和UNIQUE约束来确保表中的数据具有唯一性。 10. 数据库操作:包括CREATE DATABASE(创建数据库)、CREATE TABLE(创建表)、ALTER TABLE(修改表结构)、DROP TABLE(删除...

    SQL语句优化总结

    在使用UNIQUE索引时,确保没有数据行违反索引的唯一性约束。 6. WHERE子句中某些情况下的索引不使用 使用"!=", 字符连接函数(||),和数学函数(如"+")时,可能会导致不使用索引,因为它们会停用索引。在WHERE子句中...

    MySQL学习笔记 ADY

    - 表的约束:包括主键(PRIMARY KEY)、外键(FOREIGN KEY)、非空约束(NOT NULL)和唯一性约束(UNIQUE)。 - 修改表:可以使用ALTER TABLE语句来增加、删除或修改字段。 - 查看表结构:DESCRIBE用于显示表的基本...

    程序员的SQL金典6-8

    #### 第2章 数据表的创建和管理 **2.1 数据类型** - **整数类型**:如INT、BIGINT。 - **数值类型**:如FLOAT、DOUBLE。 - **字符相关类型**:如VARCHAR、CHAR。 - **日期时间类型**:如DATETIME、TIMESTAMP。 - *...

Global site tag (gtag.js) - Google Analytics