实验3《视图与完整性约束》

本次实验旨在深入理解视图的功能和完整性约束的重要性。通过定义和使用多个视图,如V_SSCH、V_S_C_G和V_NUM_AVG,掌握了视图的创建、查询、更新操作。同时,实验涉及数据完整性控制,包括实体完整性、参照完整性和用户定义完整性,如限制学生年龄<30。实验中验证了违反完整性约束时系统的处理方式,例如插入无效数据时的错误提示。

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

一、实验目的

学习灵活熟练的进行视图的操作,认识视图的作用;掌握完整性控制的方法。
1.熟悉和掌握对数据表中视图的定义操作和SQL命令的使用;
2.熟悉和掌握对数据表中视图的查询操作和SQL命令的使用;
3.熟悉和掌握对数据表中视图的更新操作和SQL命令的使用,并注意视图更新与基本表更新的区别与联系;
4.熟悉SQL语言对数据库进行完整性控制的方法。

二、实验内容

(一)以S , C , SC表为基础完成以下视图定义及使用
1.定义“SSCH”院学生基本情况视图V_SSCH;
2.将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G;
3.将各院学生人数,平均年龄定义为视图V_NUM_AVG;
4.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;
5.查询平均成绩为90分以上的学生学号、姓名和成绩;
6.通过视图V_SSCH,新增加一个学生记录 (‘S12’,‘YAN XI’,19, ‘SSCH’),并查询结果;
7.通过视图V_SSCH,删除学号为“S12”学生信息,并查询结果;
8.将视图V_SSCH中学号为“S12”的学生改名“中南人”。
(二)使用SQL进行数据完整性控制:包括三类完整性、check短语、constrain子句。

  1. 在创建下列关系表时完成如下约束:定义实体完整性;参照完整性(外码、在删除S中的元组时级联删除SC中相应元组、当更新S中的Sno时同时更新SC中的Sno);用户定义完整性:学生年龄<30。
  2. 修改S中的约束条件,学号在100-1000之间。
    学生关系表S :
学号 姓名 性别 年龄 所在系
Sno Sname Ssex Sage sdept

创建课程关系表C :

课程号 先行课 课程名 学分
Cno Cname Cpno ccredit

创建学生-课程表SC :

学号 课程号 成绩
Sno Cno grade

3.用实验验证当操作违反了完整性约束时,系统如何处理?
问题:外键与参照主键是否一定要相同?

三、实验方法与实验步骤

(1)实验方法:
本次实验利用SQL Server 2019和Microsoft SQL Server Management Studio 17实验工具、SQL语言进行对数据库表和视图的基本操作,实验方案为参考书本知识及网络资料完成实验内容要求。

(2)实验步骤:

  1. 连接到学生-课程数据库
  2. 复习有关视图操作的SQL语言命令;复习有关完整性约束操作的SQL语言命令
  3. 定义视图、对视图进行查询、修改;
  4. 进行完整性约束定义、修改;
  5. 进行约束违例验证。

四、实验结果

(一)以S , C , SC表为基础完成以下视图定义及使用
1.定义“SSCH”院学生基本情况视图V_SSCH;

create view V_SSCH as
(select * from S where sdept='SSCH');

select * from V_SSCH;

2.将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G;

create view V_S_C_G as
(select S.Sno,S.Sname,SC.Cno,SC
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZenSheep

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

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

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

打赏作者

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

抵扣说明:

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

余额充值