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 可以删除不让删的约束。级联删除,也会删除指向它的外键。
列级定义:在定义表时,直接在列后指出。
表级定义:在列定义完毕后,的后面指出约束。
当两列同时构成主键(复合主键)时,必须表级定义。