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约束.txtoracle新手入门指导之五—ORACLE约束.txt
oracle约束键解析
09oracle约束.pptx
Oracle所有约束基本语法,介绍比较浅显易懂!
1 1 、 e oracle 数据库有 5 5 种约束: :y primary n key,foreign key,unique,check,not null 2 2 、 如果某个约束只作用单独的字段,即可以在列级定义约束;也可以在表 级定义约束。但是如果某个约束作用于多...
自己看视频做的笔记,以后再更新,虽然内容很少,但是一看就懂。我也是菜鸟,所以笔记都是菜鸟笔记
学习Oracle 约束总结
详细介绍了oracle的常见约束,表级约束(主键),列级约束,唯一性约束,外键约束,并介绍了如何给相应的约束命名
Oracle约束详解
正在看的ORACLE教程是:Oracle约束管理脚本。作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器。这在数据库的合并以及对数据库系统的代码表中某些...
NULL 博文链接:https://mlxnle.iteye.com/blog/1490247
oracle的索引和约束详解,可以针对索引和约束有更详尽的了解
oracle基本约束语法,记录的oracle各种约束,以及基本的使用方法