• mysql学习笔记--数据完整性


    一、数据完整性包括:

      1. 域完整性

      2. 实体完整性

      3. 引用完整性

    二、保证实体完整性

      1. 主键约束

      2. 唯一约束

      3. 自动增长列

    三、保证域完整性

      1. 数据类型约束

      2. 非空约束

      3. 默认值约束

    四、保证引用完整性

      1. 外键约束:从表的公共字段是主表的外键

    五、保证自定义完整性

    六、引用完整性

      1. 主表和从表

        两个表建立关系(两个表只要有公共字段就有关系),一个称为主表,一个称为从表。

      2. 外键约束可以实现:

        a. 主表中没有的,从表中不允许插入

        b. 从表中有的,主表中不允许删除

        c. 不能更改主表中的值而导致从表中的记录孤立存在

        d. 先删从表,再删主表

      3. 外键(foreign key)

        a. 外键:从表中的公共字段,公共字段的名字可以不一样,但数据类型必须一样。

        b. 外键约束用来保证引用完整性。

      4. 添加外键

        a. 创建表时添加外键

          create table t1(

            id int primary key,

            name varchar(10) not null

          );

          create table t2(

            stuNo int primary key,

            marks tinyint unsigned,

            foreign key(stuNo) reference t1(id)

          );

        b. 修改表时创建外键

          alter table t7 add foreign key(stuNo) references t6(id);

        c. 注意:要创建外键必须是innodb引擎,myisam不支持外键

      5. 删除外键

        alter table t1 drop foreign key 外键名;

      6. 外键操作

        a. 严格操作(上面讲的操作)

        b.置空操作(set null):如果主表记录删除或更新,从表置空

        c. 级联操作(cascade):如果主表记录删除或更新,从表级联

        d. 一般来说:主表删除的时候,从表置空操作,主表更新的时候,从表级联操作。

        e. 语法:foreign  key(外键)  references  主表(关键字段)[主表删除时候的动作][主表更新时候的动作]

          foreign key(stuNo) references t1(id) on delete set null on update cascade

  • 相关阅读:
    css中的背景、渐变 文本格式化和表格的常用属性
    HTML5中常见的英文单词
    matlab文件处理
    优先级队列
    编程珠玑(一)
    排序算法之希尔排序
    自己写的矩阵类Matrix
    排序算法之快速排序
    Thoughtworks公司面试题——MARS ROVERS问题
    matlab画图
  • 原文地址:https://www.cnblogs.com/DjanFey/p/10674555.html
Copyright © 2020-2023  润新知