天天看点

Oracle笔记之数据完整性

1、维护数据完整性的方法:

约束、触发器、应用程序(过程、函数);

2、商业逻辑规则:

年龄范围,性别:男女。

3、约束:not null 

create table user (id number not null);

unique

可以为空,并且可以多个为空。

primary key

自动创建索引,不为空,不重复

foreign key

外键可以指向自己所在表,可以指向unique列。

和他指向的主键列类型要一致。

建表顺序

外键列可以为空,但不能是所指主键不存在的值。

check

create table 表名 (id number check(id>0));

check (列名 in (... , ...));

default ‘男’,放在check前面。

增加约束:

在一张表建好后对约束进行修改

alter table 表名 modify 字段名 not null;指定不能为空

alter table 表名 add constraint uni_id unique(字段); 增加唯一约束

alter table 表名 add constraint ch_addr check(字段 in ());增加检测约束

删除约束:

alter table 表名 drop 约束名;(删除主键时可以不带约束名)

加一个cascade 可以删除不让删的约束。级联删除,也会删除指向它的外键。

列级定义:在定义表时,直接在列后指出。

表级定义:在列定义完毕后,的后面指出约束。

当两列同时构成主键(复合主键)时,必须表级定义。