- 什么是数据完整性
- 保证用户输入的数据保存到数据库是正确的
- 如何添加数据完整性
- 在创建表时给表中添加约束
- 完整性分类
- 实体完整性:表中的一行 代表一个实体
- 作用:标识每一行的数据不重复,行级约束
- 约束类型
- 主键约束: 每个表中要有一个主键, 数据唯一且不能为null
- 添加方式
javascript // 建一个表名为student的表 id 为主键约束 方法1 create table student( id bigint primary key, stu_name varchar(50), stu_age int ); // 方法2 create table student( id bigint, stu_name varchar(50), stu_age int, primary key(id) // 指定id ); // 方法3 联合主键 两个列的数据组合成主键 create table student( id bigint, stu_name varchar(50), stu_age int, primary key(id,stu_age) // 指定id 只有两个记录的这两个数据都是一样的时候,才违反约束 );
- 添加方式
- 主键约束: 每个表中要有一个主键, 数据唯一且不能为null
- 实体完整性:表中的一行 代表一个实体
- 唯一约束
- 特点: 指定列的数据不能重复, 可以为空值
- 格式```javascript
// 加入unique 可以任意个唯一约束 create table student( id bigint unique, stu_name varchar(50) unique, stu_age int );
- 自动增长列
- 特点: 指定列的数据自动增长。 即使数据删除。还是从删除的序号继续往下
- 格式```javascript
// auto_increment 可以任意个唯一约束
create table student(
id bigint auto_increment,
stu_name varchar(50) unique,
stu_age int
);
- 域完整性: 一个单元格就属于一个域
- 约束
- 数据类型
- 非空 not null
- 默认值约束 default
- 约束
参照完整性(设置外键)
- 定义: 两列值n1, n2,如果n2 参照n1的值,那么n2的每个值都只能在n1这个列已有的值里面,不能有不存在于n1的值
特点: 两个字段的类型必须是一致的
javascript // 添加外键约束 n2 参考 n1 fk_num1_num2 为外键名字 alter table test1 add constraint fk_num1_num2 foregin key(n2) references test1(n1)
多表外键的参照约束
```javascript // 可以将原先一张复杂的表例如 学生的信息和成绩 拆成两张表 一张学生的基本信息表 一个学生的成绩表
// 但是需要对两张表进行关联,每一个学生都能对应到自己的成绩上
// 需要在可视化工具中进行选择
// sid 参考 stu表下的id 这一列
```
- 