【MySQL】——数据库的完整性

💻博主现有专栏:

                C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等
🥏主页链接:

                Y小夜-CSDN博客

目录

🎯实体完整性

🎃实体完整性定义

🎃实体完整性检查和违约处理

🎯参照完整性

🎃参照完整性定义

🎃参照完整性检查和违约处理

🎯用户定义完整性

🎃属性上的约束条件

🎃元组上的约束条件

🎯完整性约束命名子句


🎯实体完整性

🎃实体完整性定义

关系模型的实体完整性

  • CREATE  TABLE中用PRIMARY KEY定义

单属性构成的码有两种说明方法

  • 定义为列级约束条件
  • 定义为表级约束条件

对多个属性构成的码只有一种说明方法

  • 定义为表级约束条件

🎃实体完整性检查和违约处理

        插入或对主码列进行更新操作时,关系数据库管理系统按照实体完整性规则自动进行检查。包括:

  • 检查主码值是否唯一,如果不唯一则拒绝插入或修改
  • 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改

🎯参照完整性

🎃参照完整性定义

        若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

  • 或者取空值(F的每个属性值均为空值)
  • 或者等于S中某个元组的主码值

关系模型的参照完整性定义

  • 在CREATE  TABLE中用FOREIGN KEY短语定义哪些列为外码
  • 用REFERENCES短语指明这些外码参照哪些表的主码

🎃参照完整性检查和违约处理

  • 一个参照完整性将两个表中的相应元组联系起来
  • 对被参照表和参照表进行增删改操作时有可能破坏参照完整性,必须进行检查

参照完整性违约处理

(1) 拒绝(NO ACTION)执行

         不允许该操作执行。该策略一般设置为默认策略

(2) 级联(CASCADE)操作

         当删除或修改被参照表(Student)的一个元组造成了与参照表(SC)的不一致,则删除或修改参照表中的所有造成不一致的元组

(3)设置为空值(SET-NULL)

        当删除或修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值。

🎯用户定义完整性

  • 用户定义的完整性是:针对某一具体应用的数据必须满足的语义要求
  • 关系数据库管理系统提供了定义和检验用户定义完整性的机制,不必由应用程序承担

🎃属性上的约束条件

CREATE TABLE时定义属性上的约束条件

  • 列值非空(NOT NULL)
  • 列值唯一(UNIQUE)
  • 检查列值是否满足一个条件表达式(CHECK)

属性上的约束条件检查和违约处理

  • 插入元组或修改属性的值时,关系数据库管理系统检查属性上的约束条件是否被满足
  • 如果不满足则操作被拒绝执行

🎃元组上的约束条件

  • 属性上的约束条件:只涉及单个属性
  • 元组级的限制:可以设置不同属性之间的取值的相互约束条件
  • 在CREATE TABLE时可以用CHECK短语定义元组上的约束条件,即元组级的限制

元组上的约束条件检查和违约处理

  • 插入元组或修改属性的值时,关系数据库管理系统检查元组上的约束条件是否被满足
  • 如果不满足则操作被拒绝执行

🎯完整性约束命名子句

1.完整性约束命名子句

       CONSTRAINT

        <完整性约束条件名><完整性约束条件> <完整性约束条件>包括NOT NULL、UNIQUE、PRIMARY KEY短语、FOREIGN KEY短语、CHECK短语等

2. 修改表中的完整性限制

  • 使用ALTER TABLE语句修改表中的完整性限制

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y小夜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值