Oracle数据库可以以两种声明方式创建6种类型的约束。
1>. NOT NULL constraint 保证数据值不为空。
2>. UNIQUE constraint 保证该列或组合的多列值唯一,可以有部分值为空。
3>. PRIMARY KEY constraint 是NOT NULL 和 UNIQUE的组合使用,也就是将这两种约束使用到同一列
上。
4>. FOREIGN KEY constraint 引用的值在另外一个表中也出现过。
5>. CHECK constraint 保证数据值在指定的条件中。
6>. REF constraint 引用其它的表或对象类型。
两种方式是:
1>. 在列内部定义, inline (NOT NULL constraint必须在inline定义,其它可以在外部定义。)
2>. 在列外部定义, out-of-line
-----------------------------------------------------------
外部约束Oracle语法:
out_of_line_constraint::=
[ CONSTRAINT constraint_name ]
{ UNIQUE (column [, column ]...)
| PRIMARY KEY (column [, column ]...)
| FOREIGN KEY (column [, column ]...)
references_clause
| CHECK (condition)
}
[ constraint_state ]
references_clause::=
REFERENCES [ schema. ] { object_table | view }
[ (column [, column ]...) ]
[ON DELETE { CASCADE | SET NULL } ]
[ constraint_state ]
constraint_state::=
[ [ [ NOT ] DEFERRABLE ]
[ INITIALLY { IMMEDIATE | DEFERRED } ]
| [ INITIALLY { IMMEDIATE | DEFERRED } ]
[ [ NOT ] DEFERRABLE ]
]
[ RELY | NORELY ]
[ using_index_clause ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ exceptions_clause ]
-------------------------------------------------------------------
UNIQUE constraint 限制:
1>. 以下数据类型不可以使用UNIQUE constraint:
LOB(CLOB, BLOB), LONG, LONG RAW, VARRAY, NESTED TABLE, OBJECT, REF, TIMESTAMP WITH TIME
ZONE, or user-defined type. 可以使用到TIMESTAMP WITH LOCAL TIME ZONE类型中。
2>. 复合UNIQUE键不可以超过32列。
3>. 不可以在同一列或多列上同时使用PRIMARY KEY, UNIQUE constraint.
4>. You cannot specify a unique key when creating a subview in an inheritance hierarchy.
The unique key can be specified only for the top-level (root) view.
PRIMARY KEY constraint 限制:
1>. 一个表或视图只可以有一个主键。
2>. LOB(CLOB, BLOB), LONG, LONG RAW, VARRAY, NESTED TABLE, BFILE, REF, TIMESTAMP WITH TIME
ZONE, or user-defined type不可以是主键. TIMESTAMP WITH LOCAL TIME ZONE可以是主键。
3>. 主键的长度不可以超过一个数据块。
4>. 复合主键不能超过32列。
5>. 不可以在一列或多列上同时有主键和唯一约束。
6>. You cannot specify a primary key when creating a subview in an inheritance hierarchy.
The primary key can be specified only for the top-level (root) view.
FOREIGN KEY constraint 限制:
一个表或视图包含的外键被称为子对象,同时该表或视图包含的引用键称为父对象。外键的对象可以是
本身,这时子表(视图)和父表(视图)都其本身。如果没有指定父表(视图)中的外键,侧自动采用该
表的主键。
分享到:
相关推荐
Oracle 约束错误约束错误 Oracle 中的约束错误是指在数据库中违反了约束条件,导致数据无法修改或删除的错误。这种错误通常发生在父表和子表之间存在关联关系时,试图删除或修改父表中的记录,但子表中存在对应的...
### Oracle约束详解 在Oracle数据库管理系统中,约束是用于确保数据完整性和一致性的规则或条件。这些约束可以被定义在表级别的字段上,用来限制存储在表中的数据类型。通过实施约束,我们可以确保数据的质量,并...
Oracle约束和索引是数据库设计和优化的核心概念。通过正确地应用约束,可以确保数据的准确性和一致性;而合理地创建和管理索引,则能够显著提升查询速度,提高整体系统性能。作为数据库管理员或开发者,理解和熟练...
Oracle约束详解
本文将深入探讨Oracle约束的基本语法以及如何修改表结构。 首先,Oracle约束可以分为五种类型: 1. **NOT NULL约束**:不允许字段值为空,确保了字段必须有值。 2. **UNIQUE约束**:确保字段中的值是唯一的,但...
Oracle约束是数据库管理系统中用于确保数据完整性的重要机制。在Oracle数据库中,约束主要分为三类:域完整性、实体完整性和参照完整性。 1. 域完整性(Domain Integrity): 域完整性关注的是单个列的数据有效性...
### Oracle新手入门指导之五——Oracle约束 #### 约束概述 在Oracle数据库中,约束是一种用于确保数据完整性的机制。它可以帮助我们定义表中的列必须满足的规则,从而确保数据的一致性和准确性。Oracle提供了多种...
Oracle约束键解析主要涉及到数据库设计中的关键概念,用于确保数据的完整性和一致性。本文将详细介绍四种主要的约束类型:主键约束(Primary Key)、唯一约束(Unique)、外键约束(Foreign Key)和检查约束(Check...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,它提供了丰富的数据完整性约束来确保数据的准确性和一致性。在Oracle中,约束是定义在表上的规则,用于限制可以存储在表中的数据类型和值。以下是对Oracle...
### Oracle约束总结 在Oracle数据库中,为了确保数据的一致性和完整性,我们常常需要使用到各种类型的约束。本文将详细地介绍Oracle中的五种主要约束类型:非空(NOT NULL)、唯一(UNIQUE)、主键(PRIMARY KEY)...
1 1 、 e oracle 数据库有 5 5 种约束: :y primary n key,foreign key,unique,check,not null 2 2 、 如果某个约束只作用单独的字段,即可以在列级定义约束;也可以在表 级定义约束。但是如果某个约束作用于多...
Oracle约束是数据库设计中的关键元素,用于确保数据的完整性和一致性。在Oracle数据库系统中,约束是用来限制可以插入或更新到表中的数据类型和值。它们是预防性地确保数据质量的规则,防止意外的数据输入错误或不...
详细介绍了oracle的常见约束,表级约束(主键),列级约束,唯一性约束,外键约束,并介绍了如何给相应的约束命名
正在看的ORACLE教程是:Oracle约束管理脚本。作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器。这在数据库的合并以及对数据库系统的代码表中某些...
总之,Oracle约束是数据库设计的关键组成部分,它们帮助维护数据的准确性和一致性,防止错误数据的输入。理解并熟练使用这些约束对于构建健壮的数据库结构至关重要。学习和掌握约束的使用,可以帮助我们更好地设计和...