湖州市建设中心网站,网站容易被百度收录,域名是干什么的,wordpress包这里写目录标题基本概念实体完整性参照完整性违规处理用户自定义完整性约束条件定义完整性约束命名字句基本概念
完整性约束主要包括
实体完整性参照完整性用户自定义完整性
实体完整性
关系模型中实体完整性通常在建表时候添加primary key完成
# primary key定义
create …
这里写目录标题基本概念实体完整性参照完整性违规处理用户自定义完整性约束条件定义完整性约束命名字句基本概念
完整性约束主要包括
实体完整性参照完整性用户自定义完整性
实体完整性
关系模型中实体完整性通常在建表时候添加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 # 在更新时候拒绝被参照表)违规处理
修改参照表只要涉及外键字段例如插入元组、修改外码值都会直接拒绝对于被参照表如果是删除元组或者修改主码值可以拒绝可以级联可以设置为空值
用户自定义完整性
约束条件定义
列值非空(not null)列值唯一(unique)列值上是否符合表达式(check)
# 主要说明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两个属性之间的约束条件
)如果约束条件不被满足DBMS直接拒绝执行
完整性约束命名字句
# 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 c1constraint可以定义任何一种完整性约束而且为其表面名称好处是名称自定义可以进行删除约束条件。如果像上面直接给出not nullunique等条件SqlServer会自动为其添加名称一般名称都有规律。像主键约束一般叫pk_xxxx。