实验6 数据完整性控制

更新于 2026年10月10日 版权声明
实验6 数据完整性控制 图示

数据完整性是指数据的精确性和可靠性,它是为了防止因错误信息的输入输出造成无效操作,或数据库中存在不符合语义规定的数据而提出的,强制数据完整性可保证数据库中的数据质量。数据完整性分为实体完整性、参照完整性和用户定义的完整性。

【实验目的】

①掌握实体完整性的创建和修改。

②掌握参照完整性的创建和修改。

③掌握用户定义的完整性的创建和修改。

④掌握触发器的创建和修改。

【知识要点】

(1)实体完整性

实体完整性是指表中行的完整性,要求每一个表中的主键字段值不能为空,也不能重复。实体完整性通过 PRIMARY KEY 约束、UNIQUE 约束或UNIQUE 索引保证主键的完整性。

(2)参照完整性

参照完整性是相关联的两个表之间的完整性约束。具体地说,就是表A中每条记录外键的值或者为空值,或者必须是在参照表B中的主键已存在的值。通常把表A叫作从表,把表B叫作主表。

定义了外键以后,主表中的数据不能随便删除。在删除主表记录的时候,数据库会检查这个主键值是否被从表参照,如果有参照,则不能删除。可以为主表定义级联删除,即主表中的一条记录被删除后,则从表中凡是外键的值与主表的主键值相同的记录会被同时删除。也可以定义级联修改操作,即修改主表中主键的值,则从表中相应记录的外键值也随之被修改。

(3)用户定义的完整性(https://www.daowen.com)

用户定义的完整性是针对应用环境不同定义的一些特殊约束条件,它反映某一具体应用所涉及的数据必须满足语义要求,如学生的性别应该为“男”或“女”,年龄必须是0~150的整数等。

对于用户定义完整性约束,SQL提供了非空约束、CHECK约束、DEFAULT约束、触发器等来实现用户的各种完整性要求。

(4)数据完整性定义的命令格式

数据完整性可以在创建表时采用CREATE TABLE命令定义,也可以采用ALTER TABLE命令对表增加数据完整性定义。命令的详细格式见实验3的相关知识要点。

(5)创建触发器的命令格式

CREATE

    [DEFINER = user]

    TRIGGER [IF NOT EXISTS] trigger_name

    trigger_time trigger_event

    ON tbl_name FOR EACH ROW

    [trigger_order]

    trigger_body

trigger_time: {BEFORE | AFTER}

trigger_event: {INSERT | UPDATE | DELETE}

trigger_order: {FOLLOWS | PRECEDES} other_trigger_name

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)