数据完整性约束
数据完整性约束指为了保证数据的准确性和可靠性而设置的一系列规则的集合
完整性约束主要包括
A. 实体完整性
B. 域(字段)完整性
C. 引用完整性
D. 自定义完整性
实体完整性
实体完整性约束保证数据记录之间相互独立,一个标识只能表示一个实体
主要包括主键约束(primary key)、唯一性约束(unique)、主键自增约束(auto_increment)
1. 主键约束(primary key)
添加主键约束可以有三种形式,A、B为创建表结构时增加主键约束,而C为创建表结构后,增加主键约束
A.create table student_scores(
id int primary key, name varchar(100)
);
B.create table student_scores(
id int, name varchar(100), primary key(id)
);
C.create table student_scores(
id int, name varchar(100)
);
# constraint 约束 pk_id 为约束起的别名
alter table student_scores add constraint pk_id primary key(id);
此外一张表中必须且只能有一个主键,但是可以有联合主键,多个字段整体作为主键,
2. 唯一性约束(unique)
alter table student_scores add constraint uq_id unique(id);
在一张表中可以添加多个唯一性约束,表示该字段不可以重复,主键自动表示不可重复
3. 主键自增约束(auto_increment)
create table student_scores(
id int primary key auto_increment,
name varchar(100)
);
主键自增约束通常与主键约束搭配使用,表示从1开始,每次自身加1
域(文件)完整性
主要包括:非空约束(not null)、默认值约束(default)
1. 非空约束(not null)
create table student_scores(
id int primary key auto_increment,
name varchar(100) not null
);
2. 默认值约束(default)
creat table student_scores(
id int primary key auto_increment,
name varchar(100) not null,
score int default(0)
);
引用完整性
主要包括外键约束(foreign key)
create table class(
cid int primary key,
cname varchar(100)
);
create table student(
sid int primary key,
class_name varchar(100),
sname varchar(100) not null
);
# 在student表中添加一个约束c_name,什么约束呢,外键约束class_name参考表class中的cname
alter table student add constraint c_name foreign key(class_name) references class(cname);
自定义完整性
一般不适用于MySQL