1. 什么是数据完整性
    • 保证用户输入的数据保存到数据库是正确的
    1. 如何添加数据完整性
      • 在创建表时给表中添加约束
    2. 完整性分类
      • 实体完整性:表中的一行 代表一个实体
        • 作用:标识每一行的数据不重复,行级约束
        • 约束类型
          • 主键约束: 每个表中要有一个主键, 数据唯一且不能为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 只有两个记录的这两个数据都是一样的时候,才违反约束 );
    1. - 唯一约束
    2. - 特点: 指定列的数据不能重复, 可以为空值
    3. - 格式```javascript

    // 加入unique 可以任意个唯一约束 create table student( id bigint unique, stu_name varchar(50) unique, stu_age int );

    1. - 自动增长列
    2. - 特点: 指定列的数据自动增长。 即使数据删除。还是从删除的序号继续往下
    3. - 格式```javascript
    4. // auto_increment 可以任意个唯一约束
    5. create table student(
    6. id bigint auto_increment,
    7. stu_name varchar(50) unique,
    8. stu_age int
    9. );
    • 域完整性: 一个单元格就属于一个域
      • 约束
        • 数据类型
        • 非空 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)

      • 多表外键的参照约束
        more_table_foreign_references.jpgmore_table_foreign_references2.jpg

      • more_table_foreign_references2.jpg```javascript // 可以将原先一张复杂的表例如 学生的信息和成绩 拆成两张表 一张学生的基本信息表 一个学生的成绩表

    // 但是需要对两张表进行关联,每一个学生都能对应到自己的成绩上

    // 需要在可视化工具中进行选择

    // sid 参考 stu表下的id 这一列 ```

    1. - ![more_table_foreign_references2.jpg](https://cdn.nlark.com/yuque/0/2020/jpeg/5376480/1607651076282-5627fda1-dabc-48a2-8d4e-838306f14f67.jpeg#align=left&display=inline&height=548&margin=%5Bobject%20Object%5D&name=more_table_foreign_references2.jpg&originHeight=548&originWidth=1526&size=208540&status=done&style=none&width=1526)