数据完整性
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 名称;