数据完整性约束
知道什么是数据完整性
知道如何使用约束
- 数据完整性
存储在数据库中的所有数据值均正确的状态。
如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。
数据完整性包括:
域完整性
实体完整性
参考完整性
数据库通过约束来保证数据完整性。
它通过对表的行或列的数据做出限制,来确保表的数据的准确性,完整性、唯一性,可靠性、联动性。
- 数据常见问题
数据冗余
失去数据完整性
数据缺少唯一标识
失去实体完整性
失去域完整性
失去引用完整性
- 数据库常用约束
主键约束 作用:让数据具有唯一标识 语法:primary key
create table tpk(id int primary key , name char(10));
字段被设置了主键约束,同时也具有了唯一性约束和非空约束。 在字段中插入重复数据时,或不给数据时会报错。
自动增长 作用:让数字值自动累加 语法:auto_increment 自动增长设置在数值型字段上,需要配合主键约束一起使用。 如果字段没有设置主键约束,是不允许设置自动增长的。
create table tai(id int auto_increment primary key,name varchar(10));
唯一性约束 作用:保证数据的准确性,不会出现重复数据 语法:unique
create table tuni(id int unique,name char(10));
一个表中可以给多个字段设置唯一性,如果有需要的话。
非空约束 作用:不允许字段为空,添加数据时必须给值 语法:not null
create table tnn(id int,name char(10) not null);
默认约束 作用:在添加数据时,如果没有给定有默认约束字段的数据,该字段使用默认值填充 语法:default
create table tdt(id int,name char(10) default ‘NoName’);
外键约束 作用:让两表之间产生联动关系 语法:foreign key(字段名) references 表名(字段名)
– 表1
create table fClass(id int primary key,name char(10));
– 表2
create table fStudent(id int primary key auto_increment, name char(10), cid int, foreign key(cid) references fClass(id));
设置外键约束字段所关联的字段,必须是主键约束字段。
想要删除有设置外键的表,必须先删除外键所关联的表。
drop table fStudent;
drop table fClass;