【MySQL】《数据库系统》-实验项目7-完整性语言

本文详细介绍了SQL实验中的完整性语言,包括实体完整性、参照完整性和用户自定义完整性,通过实例展示了如何在创建和更新表时定义和维护这些约束,以及如何处理违反完整性的情况。
摘要由CSDN通过智能技术生成

实验项目
实验1  实验环境与操作流程
实验2  数据定义、查询与更新
实验3  基本表的定义、删除与修改
实验4  数据的插入、修改和删除
实验5  数据的查询
实验6  数据的视图
实验7  完整性语言
实验8  触发器
实验9  存储过程与函数
实验10  SQL语句1(创建、插入、查询)
实验11  SQL语句2(查询)
实验12  SQL语句3(视图、完整性、关系代数查询)

实验7  完整性语言

一、实验目的

1. 掌握实体完整性的定义和维护方法;

2. 掌握参照完整性的定义和维护方法;

3. 掌握用户自定义完整性的定义和维护方法。

二、实验要求

1. 使用CREATE语句写出定义实体完整性、参照完整性、用户自定义完整性;

2. 熟练掌握完整性语言。

三、实验内容

(参考课本5.1-5.4节以及3.2节)

(使用命令show create table 表名;来查看表中约束及名字。)

  • 实体完整性:
  1. 创建表时定义实体完整性:定义Student表的同时定义其实体完整性条件(Sno为主码),参考例5.1
  2. 创建表后定义实体完整性:先定义Course表,再添加其实体完整性条件(Cno为主码),参考例5.1、例3.6
  3. 创建表时定义实体完整性:定义SC表的实体完整性((Sno,Cno)为主码),参考例5.2。
  • 参照完整性:
  1. 创建表时定义参照完整性:定义SC中的参照完整性(Cno和Sno为两个外码),参考例5.3。
  2. 定义参照完整性的违约处理:定义SC中的参照完整性的违约处理(当删除Student表中元祖时,级联删除SC表中相应的元祖;当更新Student表中的Sno时,级联更新SC表中相应的元祖;当删除Course表中元祖造成与SC表不一致时,拒绝删除;当更新Course表中的Cno时,级联更新SC表中相应的元祖),参考例5.4。
  • 用户定义的完整性:
  1. 创建表时定义用户定义的完整性:定义SC表的Sno、Cno、Grade属性不允许取空值,参考例5.5。
  2. 创建表时定义用户定义的完整性:定义SC表的Grade的值应该在50和100之间,参考例5.9。
  3. 创建表后定义用户定义的完整性:定义Student表的Ssex只允许取“男”或“女”,并将此约束命名为C1,参考5.13
  • 更新完整性约束:
  1. 更新有自定义名字的约束:删除Student表的C1约束,参考例5.13
  2. 更新无自定义名字的约束:修改SC表中的约束条件,要求Grade的值应该在0和100之间,参考例5.13。(修改:先删除旧的约束条件,再增加新的约束条件)(先通过show create table 表名;来查看表中约束的默认名,然后删除此名的约束,增加新的约束,并命名为C2)

实验指导:

  • 创建数据库s_c

  • Student表的完整性:
  • 创建表时定义实体完整性:定义Student表的同时定义其实体完整性条件(Sno为主码),参考例5.1

  • 创建表后定义用户定义的完整性:定义Student表的Ssex只允许取“男”或“女”,并将此约束命名为C1,参考例5.13

  • 更新有自定义名字的约束:删除Student表的C1约束,参考例5.13

  • Course表的完整性:
  • 创建表后定义实体完整性:先定义Course表,再添加其实体完整性条件(Cno为主码),参考例5.1、例3.6

  • SC表的完整性:
  • 创建表时定义实体完整性:定义SC表的实体完整性((Sno,Cno)为主码),参考例5.2。
  • 创建表时定义参照完整性:定义SC中的参照完整性(Cno和Sno为两个外码),参考例5.3。
  • 定义参照完整性的违约处理:定义SC中的参照完整性的违约处理(当删除Student表中元祖时,级联删除SC表中相应的元祖;当更新Student表中的Sno时,级联更新SC表中相应的元祖;当删除Course表中元祖造成与SC表不一致时,拒绝删除;当更新Course表中的Cno时,级联更新SC表中相应的元祖),参考例5.4。
  • 创建表时定义用户定义的完整性:定义SC表的Sno、Cno、Grade属性不允许取空值,参考例5.5。
  • 创建表时定义用户定义的完整性:定义SC表的Grade的值应该在50和100之间,参考例5.9。

  • 更新无自定义名字的约束:修改SC表中的约束条件,要求Grade的值应该在0和100之间,参考例5.13。(修改:先删除旧的约束条件,再增加新的约束条件)(先通过show create table 表名;来查看表中约束的默认名,然后删除此名的约束,增加新的约束,并命名为C2)

  • 27
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值