ORACLE提供了如下几种约束:NOT NULL 非空、UNIQUE 唯一、PRIMARY KEY 主键、FOREIGN KEY 外键、CHECK 条件检查。
一、not null约束
1、建立表时指定约束。
SQL> create table aa3(id number(10) constraint aa3_nn not null,
2 name varchar2(20),
3 company varchar2(20));
2、表建立好后再指定约束。
SQL> drop table aa3;
SQL> create table aa3(
2 id number(10),
3 name varchar2(20),
4 company varchar2(20));
SQL> alter table aa3 modify(id constraint aa3_nn not null);
3、删除约束。
SQL> alter table aa3 drop constraint aa3_nn;
二、check条件检查
SQL> create table aa3(id number(10) constraint aa3_id_c check(id>=1),
2 name varchar2(20),
3 company varchar2(20));
属于列级约束。
SQL> create table aa3(id number(10),
2 name varchar2(20),
3 company varchar2(20),
4 constraint aa3_id_c check(id>=1)
5 );
属于表级约束。
注:约束中,非空约束必须是列约束。其他类型的约束都即可以是列约束,也可以创建为表约束。
三、unique约束
1、列级约束
SQL> create table aa3(id number(10) constraint aa3_id_u unique,
2 name varchar2(20),
3 company varchar2(20));
2、表级约束
SQL> create table aa3(id number(10),
2 name varchar2(20),
3 company varchar2(20),
4 constraint aa3_id_u unique(id)
5 );
四、主键约束
主键约束在效果上,相当于唯一约束+非空约束。也就是,即要求列值不能重复,又要求列值必须非空。要注意的是,在同一列上,不能即有主键约束,又有唯一约束。
五、外键约束
外键约束则必须主键结合在一起使用。在创建约束时,先必须先有一个主键,然后,根据此主键,创建一个相关联的外键约束。也就是说,外键约束必须对应一个主键,不能创建独立的外键约束。
创建表
create table emp1(id number(10), name varchar2(20), dept number(10));
create table dept1(dept number(10), dept_name varchar2(20));
设置主外键约束
alter table dept1 add(constraint dept1_dept_p primary key(dept));
alter table emp1 add(constraint emp1_dept_f foreign key(dept) references dept1(dept));
六、级联删除
delete from dept1 where dept=3;不能删除数据,违背了主外键约束。
将子表外键设为级联删除,这样删除主表部门3的数据时,子表有关部门3的数据也就跟着删除了。
alter table emp1 drop constraint emp1_dept_f;
SQL> alter table emp1 add(constraint emp1_dept_f
2 foreign key(dep t)
3 references dept1(dept)
4 on delete cascade);
ORACLE不允许删除父表。除非使用级联约束cascade constraints将先删除子表上的外键,再删除父表。
drop table dept1 cascade constraints;
七、约束的禁用与启用
1、约束的禁用
Alter table 表名 disable constraint 约束名 cascade;
在主外键约束中,先禁用外键,再禁用主键。
2、约束的启用
Alter table 表名 enable constraint 约束名 cascade;
在主外键约束中,先启用主键,再启用外键
分享到:
相关推荐
Oracle 约束错误约束错误Oracle 约束错误约束错误
Oracle所有约束基本语法,介绍比较浅显易懂!
Oracle的Constraint约束,供初学者参考;
oracle约束详解.oracle约束详解.oracle约束详解.oracle约束详解.
Oracle定义约束 外键约束 实验详解
oracle基本约束语法,记录的oracle各种约束,以及基本的使用方法
oracle 数据库约束笔记oracle 数据库约束笔记
08 oracle的 约束 ppt 08 oracle的 约束 ppt
应用于存在外键或其他约束时,需要跳过约束条件将数据导入表中,可使用该存储过程临时关闭或开启数据约束, 使用时可根据实际情况进行修改
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的常见约束,表级约束(主键),列级约束,唯一性约束,外键约束,并介绍了如何给相应的约束命名
非空约束 唯一性约束 主键约束 外键约束 检查约束
Oracle数据库的完整性约束规则详解.DOC
自己看视频做的笔记,以后再更新,虽然内容很少,但是一看就懂。我也是菜鸟,所以笔记都是菜鸟笔记