数据完整性概述
1、实体完整性
实体就是显示天下中的一个工具,RDBMS中每一行就代表一个实体。所谓实体完整性就是每一个实体都能被区别。以是,实现实体完整性一样平常通过主键约束、唯一约束或示意列属性
2、域完整性
主要指列的输入要有用,可通过限制列的数据类型、花样或值的局限来实现
3、引用完整性
主要是表与表的关系,可通过外键实现
4、用户自界说完整性
不是很领会,可通过触发器、存储历程实现,以后学了Oracle后会进一步领会
数据完整性的实现
1、建立非空约束(域完整性)
not null关键字,指定列不能输入null值
例子:
name varchar(50) not null;
2、设置主键约束(实体完整性)
primary key关键字,保证指定列的数据不能重复,不能为空。一张表只能界说一个主键
例子:
id int(10) primary key not null;
3、设置唯一约束(域完整性,由于是对列的限制)
unique关键字,由于有时一张表需要多个列唯一,而一张表又只能由一个主键,以是可以设置唯一约束来实现,一张表可以设置多个唯一约束
例子:
phoneNo varchar(20) unique;
4、指定默认值(域完整性)
default关键字,一条数据发生时若是没有输入一个列的值,那么我们可以指定一个默认值
例子:
phoneNo varchar(20) default'10086';
5、设置检查约束(域完整性)
check关键字,在插入新行或者更改已有行时才起作用,作用是阻止不满足条件的值进入该列,对null值无效,由于插入null就相当于没有插入。一个列可有多个check
例子:
age int check(age between 10 and 20);
由于MySQL不支持,以是现在不是很清晰,以后填补下这个空缺
6、使用自动编号列
auto_increment关键字,可以在添加一条纪录时,自动为该行添加数值,而且是自动增进的。一样平常与主键一起用
例子:
id int primary key auto_increment not null;
7、建立外键约束
语法:
fk_name varchar(50) references 引用表表名(列名)