目的:保证用户输入的数据保存导数据库中是正确的
包含了三个方面:
一、实体完整性
实体完整性主要从以下三个约束来实现:
1、主键约束:唯一、非空 primary key
添加:
第一种: create table 表名
(
字段名 类型 primary key
)
第二种: alter table 表 add constraint primary key(主键字段)
删除:
alter table 表 drop primary key
注:如果删除了主键约束,它的非空约束还在
2、 自增长约束:对主键字段实现自增长的处理 auto_increment
添加:
第一种:create table 表名
(
字段名 类型 primary key auto_increment
)
第二种:alter table 表 modify 字段名 类型 auto_increment;
删除:
alter table 表 modify 字段名 类型;
注:如果对一个主键、自增的字段加值的时候,可以给一个null值;
如果对一个主键、自增的字段加值的时候,也可以不给这个字段赋值;
对于添加自增长约束的字段,必须首先是一个主键约束;
3、 唯一性约束:要求字段值唯一 unique
添加:
第一种:create table 表
(
字段名 类型 unique
)
第二种 :alter table 表 add constraint 约束名 unique(字段名)
删除:
drop index 唯一约束名 on 表名
注:唯一性字段可以为null,而且null不算重复;
但是非null的值必须唯一;
二、域完整性
实体完整性主要从以下三个方面来实现:
1、数据类型:(数值类型、日期类型、字符串类型)
第一种:create table 表(
字段名 类型
)
第二种:alter table 表 modify 字段名 类型;
2、非空约束:not null 不能为空值
添加:
第一种:create table 表
(
字段名 类型 not null
)
第二种:alter table 表名 modify 字段名 类型 not null
删除:
alter table 表名 modify 字段名 类型
3、 默认值约束:default 值
添加:
第一种: create table 表
(
字段名 类型 default 值
)
第二种:alter table 表 alter 字段 set default 值;
注:值与字段的类型一致;
删除:
alter table 表 alter 字段 drop default;
三、引用完整性(参照完整性)
实体完整性主要通过外键约束来实现:
外键约束:FOREIGN KEY
主表:含有主键的表
从表:含有外键的表,从表中的外键字段值取自于主表中的主键字段
添加:
第一种:create table 表
(
字段名 类型
constraint 外键名 foreign key(外键字段) references 主表(主键字段)
)
第二种:alter table 表 add constraint 外键名 foreign key(外键字段) references
主表(主键字段)
删除:
alter table 表 drop foreign key 外键名;