MySQL数据的完整性 实体完整性(主键约束、唯一约束) 域完整性(非空、默认值约束) 参照完整性(外键约束)

数据完整性
1、解释:保证用户输入的数据保存到数据库是正确的
2、如何添加数据完整性:在创建表的时候给表添加约束
*3、完成性分为:*1、实体完整性2、域完整性3、引用完整性

实体完整性
1、解释:表中的一个(一条记录)代表一个实体(entity)
2、作用:标识每一行数据不重复。行级约束。
3、约束类型:1、主键约束(primary key)2、唯一约束(unique)3、自动增长列(auto_increment)

主键约束:
1、特点:表中要有一个主键,数据唯一,且不能为null
2、添加方式:
a:CREATE TABLE 表名(字段1 数据类型 primary key,字段2 数据类型);

b:CREATE TABLE 表名(字段1 数据类型,字段2 数据类型,primary key(要设置成主键的字段));
c:CREATE TABLE 表名(字段1 数据类型,字段2 数据类型,primary key(主键1,主键2));

如果两个字段同时相同时,就违反了联合主键的约束

先创建表再去修改主键

ALTER TABLE student ADD CONSTRAINT PRIMARY KEY(id);

唯一约束
特点:制定列的数据不能重复,并且不可以为空值
格式:alter table student(字段1 数据类型,字段2 数据类型 UNIQUE)

自动增长列
特点:指定列的数据自动增长(即使数据删除,还是从删除的序号往下增长)
格式:CREATE TABLE student(字段1 数据类型 PRIMARY KEY AUTO_INCREMENT,字段2 数据类型 UNIQUE)

域完整性
使用:限制此单元格的数据正确,不对照此列的其他单元格比较(域代表当前单元格)
1、非空约束

CREATE TABLE student(字段1 数据类型 PRIMARY KEY AUTO——INCREMENT,字段2 数据类型 UNIQUE NOT NULL);

2、默认值约束

CREATE TABLE student(字段1 数据类型 PRIMARY KEY AUTO——INCREMENT,字段2 数据类型 UNIQUE NOT NULL DEFAULT ‘值’ );

参照完整性
解释:1、是指表与表之间的一种对应关系
2、通常情况下可以通过设置两表之间的主键、外键关系,或者编写两表的触发器来实现。
3、有对应的参照完整性的两张表,在对他们的数据插入、更新、删除的过程中,系统都会将被修改的表格与另一张对应表格进行对照,从而阻止一些不正确的数据操作。

注意:
1、数据库的主键和外键的类型必须要一致。
2、两个表必须要是InnoDB类型。
3、设置参照完整性后,外键当中的内值,必须是主键当中的内容。
4、一个表当中的字段设置为主键,设置主键的表为主表

CREATE TABLE student(sid int PRIMARY KEY,name varchar(20),sex varchar(10) DEFAULT '男');

5、创建表时,设置外键,设置外键的为字表

CREATE TABLE score(sid int,scroe double,CONSTRINT stu_sco_sid FOREIGN KEY(sid) REFERENCES student(sid))

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zlk4524718/article/details/94589853