数据库完整性实验

本文通过实验介绍了数据库完整性,包括实体完整性、参照完整性和用户定义完整性。通过创建视图、修改表结构、设置主键和外键约束等方式,探讨了完整性在SQL操作中的应用,强调了保持数据正确性和相容性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的和要求       

通过本实验了解数据库完整性的概念,掌握实体完整性、参照完整性及用户定义完整性的设计方法。

二、实验原理

数据库的完整性是指数据的正确性和相容性。为维护数据库的完整性,任何数据库管理系统必须 提供定义完整性约束条件的机制,提供完整性检查的方法及违约处理。

1.实体完整性

2.参照完整性

3.用户定义的完整性

三、实验环境、内容和方法

实验环境(自拟):windows10 操作系统, mysql-8.1.0-winx64数据库服务器,老师提供的数据库脚本TradeDBSQL.txt。

内容:按要求完成视图创建、修改表的定义、增加主码约束、级联(CASCADE)操作、外键约束和null约束等操作,分析过程中的问题,对比表的不同,从而体会数据库完整性的方法,加深学习理解。 

四、实验过程描述

(一)实体完整性

   1.1 创建测试用的视图 

//创建视图SuppStock_V,显示每个供应商的总库存,通过将Products表中的SupplierID与Suppliers表中的SupplierID关联,然后按Suppliers.CompanyName分组,并计算每组的库存总数

Create view SuppStock_V as select Suppliers.CompanyName as 供应商, sum(UnitsInStock) as 库存 from Products, Suppliers where Products.SupplierID=Suppliers.SupplierID group by Suppliers.CompanyName;

记录佳佳乐和德昌公司的库存(69,98)

select * from SuppStock_V where 供应商='佳佳乐';

select * from SuppStock_V where 供应商='德昌';

1.2 在供应商表Suppliers中,将德昌的公司编号(6)改为1(而1为佳佳乐编号,因此德昌 与 佳佳乐的编号都为1,问题! )

update Suppliers set SupplierID=1 where CompanyName='德昌'; 

再次查找佳佳乐 和德昌 公司的库存

比较结果 佳佳乐=69, 德昌=69 

将佳佳乐的公司编号(1)改为6,查询库存为98

update Suppliers set SupplierID=6 where CompanyName='佳佳乐';

select * from SuppStock_V where 供应商=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

在下知尔泽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值