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

本文详细介绍了通过SQL语言创建及使用视图的方法,包括创建满足特定条件的视图、使用这些视图进行查询,以及视图的更新限制等内容。

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

在这个系列会更新一些最近老师要求写的实验报告~
大家尽量对着我的文章做一个参考,不要盲目的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题建立的“计算机系”同学的视图,对此视图执行删除“刘晨”同学的记录。

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

一、建立以下五个表: 教师表:Teacher,学生表:Student, 课程表:Course,选课表:SC,授课表:TC 二、完成以下查询: 1.查询成绩在80-90之间的记录。 2.查询至少4个同学选修的课程。 3.查询其他中比“信息”所有学生年龄都大的学生单及年龄,并按年龄降序输出: 4.查询与学生张建国同岁的所有学生学号姓名别。 5.查询选修了2门以上课程学生单。 6.查询至少有一门与“张建国”选课相同的学生姓名课程7.查询成绩比该课程平均成绩高的学生的成绩表。 8.查询选课为01001课程且成绩高于课程01002学生姓名,此两门课的课程和成绩。 9.查询所有没选修01001课程学生单 10、查询每个同学各门课程的平均成绩和最高成绩,按降序输出姓名、平均成绩、最高成绩; 11、查询所有学生都选修了的课程课程; 12、查询选修了991102学生选修了的课程学生学号姓名、使用SQL创建视图,修改记录 1.创建成绩视图SCORE_VIEW,包含学号sno,姓名sn,课程cn,成绩score; 2.创建一个计算机学生视图S_VIEW,包含学号sno,姓名sn,性别sex; 3.通过上面的视图,修改学号为991102,课程01001的成绩记录; 4,创建一个视图,计算机学生的成绩单score_view_CDEPT,包含学号sno,姓名sn,课程cn,成绩score
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小涵9929

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

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

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

打赏作者

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

抵扣说明:

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

余额充值