大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
实验04-SQL的视图
无
2022-10-13 23:42:08
105
0
0
bigdata
# 实验4、SQL的视图 ## 4.1 实验目的 熟悉SQL支持的有关视图的操作,能够熟练使用SQL语句来创建需要的视图,对视图进行查询和删除视图。定义数据库外模式,并能使用所创建的视图实现数据管理。理解和掌握视图消解执行原理,掌握可更新视图和不可更新视图的区别。理解物化视图。 ## 4.2 实验内容 1. 定义常见的视图形式,包括: * 行列子集视图 * WITH CHECK OPTION的视图 * 基于多个基表的视图 * 基于视图的视图 * 带表达式的视图 * 分组视图 * 全量物化视图 2. 通过实验考察WITH CHECK OPTION这一语句在视图定义后产生的影响,包括对修改操作、删除操作、插入操作的影响。 3. 讨论视图的数据更新情况,对子行列视图进行数据更新。 4. 使用DROP语句删除一个视图,由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除。同样的原因,删除基表时,由该基表导出的所有视图定义都必须显式删除。 ## 4.3 实验步骤 1. 创建一个行列子集视图CS_View,给出选课成绩合格的学生的编号、教师编号、所选课程号和该课程成绩,并查询该视图。 2. 创建基于多个基本表的视图SCT_View,这个视图由学生姓名和他所选修的课程名及讲授该课程的教师姓名构成,并查询该视图。从视图SCT_View中查询所有选修课程“数据库原理及应用”的学生姓名。 3. 创建带表达式的视图EXP_View,由学生姓名及所选课程名和所有课程成绩都比原来多5分这几个属性组成,并查询该视图。 4. 创建分组视图Group_View,将学生的学号及他的平均成绩定义为一个视图,并查询该视图。 5. 创建一个基于视图的视图,基于(1)中建立的视图,定义一个包括学生编号、学生所选课程数目和平均成绩的视图VV_View,并查询该视图。 6. 创建一个物化视图MV_CS_View,给出选课成绩合格的学生的编号、教师编号、所选课程号和该课程成绩,并查询该物化视图。向物化视图MV_CS_View中基表Reports插入数据('S52','T05','C07',53),并查询视图MV_CS_View。向物化视图MV_CS_View中基表Reports插入数据('S52','T05','C03',83),并查询视图MV_CS_View。 7. 创建一个带WITH CHECK OPTION子句的视图CS_View_opt,给出选课成绩合格的学生的编号、教师编号、所选课程号和该课程成绩,并查询该视图。openGauss与SQLServer分别是如何处理的?(注:在实现SQL语句时,对于标准SQL之外的规定,每个DBMS处理方式不一样。) 8. 在SQL Server中建造好与openGauss一样的数据库及相关的基本表,并建立一个和(7)一样的视图,插入元组('S52','T05','C07',51)到视图CS_View_opt中。分析对插入操作有什么影响。通过视图CS_View_opt,把所有课程编号为C01的课程的成绩都减去5分。这个操作数据库是否会正确执行,为什么?如果加上5分(原来95分以上的不变)呢?在视图CS_View_opt删除编号S03学生的记录,会产生什么结果?【注:该步骤可在SQL Server中操作】 9. 删除视图SCT_View、视图CS_View和视图CS_View_opt,删除物化视图MV_CS_View。思考物化视图与普通视图的区别。 ## 4.4 实验要求 1. 实验之前请细细阅读实验总体要求与说明指导书 2. 在DataStudio的SQL终端环境中,完成以上实验(1)-(7)(9)步所有SQL操作,并完成实验报告。
上一篇:
实验03-数据更新
下一篇:
实验05-用户权限控制
文档导航