数据完整性

数据完整性

1、域完整性:字段/列------非空、缺省

2、实体完整性:记录/行------主键、唯一键

3、引用完整性:表与表之间------外键

 

MySQL中的约束:主键(primary key)、唯一性(unique)、非空(not null)、缺省(default)、外键(foreign key)

 

主键、唯一键、外键都会自动创建索引
一个表只能有一个或一组主键

唯一键:候选主键,区别在于其可以存储空值

外键:来源于主表的主键或者唯一键(外键对应字段:可允许为空,且其值须在外表中出现)

 

外键 在字段最后添加
constraint fk_Elogs_sID foreign key(sID) references Students(sNo)
constraint 约束名 约束类型(对应字段) references 主键(主键字段或位移键字段)
主键
primary key (sid,sCard)

 

外键 在字段最后添加
constraint fk_Elogs_sID foreign key(sID) references Students(sNo)
constraint 约束名 约束类型(对应字段) references 主键(主键字段或位移键字段)
主键
primary key (sid,sCard)

例子:

 

 

 

对于已经存在的表添加唯一键约束
alter table S add constraint un_Mobile unique(sMobile)

例:

ALTER TABLE te ADD CONSTRAINT un_Userame UNIQUE(username)

将te表的username字段设置为唯一键,名称为un_Username

 


主外关联,要删除主表数据,需要先删除从表数据
级联更新(使用少)

on delete cascade
on update cascade

用法:

 

 

 

删除外键

ALTER TABLE 表名
DROP FOREIGN KEY 外键名称;

ALTER TABLE elogs
DROP FOREIGN KEY fk_elogs_cID;

 

删除主键(注意:1、没有外键引用;2、主键字段不具备自增)
alter table 表名 drop primary key;

 

删除唯一键
alter table 表名drop index 名称;

 

posted @ 2019-11-16 12:39  这肥猫,好橘!  阅读(347)  评论(0编辑  收藏  举报