完整性约束主要包括
关系模型中实体完整性通常在建表时候添加primary key完成
# primary key定义
create table tab(xxxx primary key, # 列级完整性约束定义xxxx,xxxx....
)create table tab(xxx,xxx,xxx,primary key (var1, var2,.....) # 表级完整性约束定义,如果有多个只能在表级定义)
保证主键上述两种特点,DBMS主要采取以下方式:
关系模型用foreign key保证
# 外键定义
create table sc(xxxx,xxxx,xxxx,foreign key (var1) references xx_tab(var2) # 在表级定义参照完整性on delete cascade # 删除时候级联(被参照表)on update no action # 在更新时候拒绝(被参照表))
# 主要说明check定义
create table tab(xxx,xxx,xxx,sex char(2) check(sex in ('男', '女')), # 定死性别只能取男或者女xxx
)
# check也可以在元组上定义完整性约束
create table tab(xxx,xxx,xxx,check (sex = '女' or name not like 'Ms.%') # 定义name与sex两个属性之间的约束条件
)
# constaint语句
constraint <完整性约束条件名称>
[primary key 短语
|foreign key 短语
|check 短语]# e.g.
create table tab(sno numeric(6)constraint c1 check (sno between 90000 and 99999),sname char(20),constraint c2 not null,sage numeric(3),constraint c3 check(sage < 30),xx,constraint studentkey primary key (sno)
)alter table tab
add constraint c1 check xxxx
alter table tab
drop constraint c1
下一篇:理解java反射