Mysql实验报告--实验三 视图

在这个系列会更新一些最近老师要求写的实验报告~
大家尽量对着我的文章做一个参考,不要盲目的cv,毕竟这个对于我们以后的工作学习还是十分重要的。

一、实验目的与任务

目的任务:熟悉SQL语言有关视图的操作,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理

二、实验内容
1 写出创建满足下述要求的视图的SQL语句,并执行所写代码。

(1)包含学生的学号、姓名、所在系、年龄,课程号、课程名、课程学分的视图。

在这里插入图片描述

(2)包含学生的学号、姓名、选修的课程名和考试成绩的视图。

在这里插入图片描述

(3)统计每个学生的选课门数,要求列出学生学号和选课门数的视图。
在这里插入图片描述

(4)统计每个学生的修课总学分,要求列出学生学号和总学分的视图(说明:考试成绩大于等于60才可获得此门课程的学分)。

在这里插入图片描述

2 利用第1题建立的视图,完成如下查询。

(1)查询考试成绩大于等于90分的学生的姓名、课程名和成绩。

在这里插入图片描述

(2)查询选课门数超过3门的学生的学号和选课门数。
在这里插入图片描述

(3)查询计算机系选课门数超过3门的学生的姓名和选课门数。

在这里插入图片描述

(4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。

在这里插入图片描述

(5)查询年龄大于等于20岁的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。
在这里插入图片描述

3.使用WITH CHECK OPTION,在第1题建立的视图(1)的基础上,再创建一个“计算机系”同学的学号、姓名、所在系、年龄,课程号、课程名、课程学分的视图。

(1)增加一条记录,

0841101 张新 计算机系 20 C001 高等数学 4

(2)修改这条记录为

0841101 张新 物理系 20 C001 高等数学 4

以上两个操作是否能够实现?为什么?可以实现的,写出SQL语句。

不能,语句不能实现是因为涉及多张表的值。

4.以下操作能否实现,如果能实现,给出相应的SQL语句,否则,解释不能实现的原因。

(1)对Student表,创建一个只包含男生信息的视图。对此视图执行将“李勇”的年龄更新为22岁。

在这里插入图片描述

(2)在上题创建的视图中。删除“刘晨”同学的记录。

DELETE 语句与REFERENCE 约束"FK__SC__Sno__0BC6C43E"冲突。该冲突发生于数据库"学生数据库",表"dbo.SC", column ‘Sno’
(3)第3题建立的“计算机系”同学的视图,对此视图执行将“李勇”的年龄更新为22岁。

在这里插入图片描述

涉及到原表,不能更新

(4)第3题建立的“计算机系”同学的视图,对此视图执行删除“刘晨”同学的记录。

不可更新,因为修改会影响多个基表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码堆里上蹿下跳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值