数据库原理及应用实验报告-实验4-SQL的视图

这篇具有很好参考价值的文章主要介绍了数据库原理及应用实验报告-实验4-SQL的视图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验4、SQL的视图

  1. 实验目的

熟悉SQL支持的有关视图的操作,能够熟练使用SQL语句来创建需要的视图,对视图进行查询和删除视图。

    1. 实验内容
    1. 定义常见的视图形式,包括:
  1. 行列子集视图
  2. WITH CHECK OPTION的视图
  3. 基于多个基表的视图
  4. 基于视图的视图
  5. 带表达式的视图
  6. 分组视图
    1. 通过实验考察WITH CHECK OPTION这一语句在视图定义后产生的影响,包括对修改操作、删除操作、插入操作的影响。
    2. 讨论视图的数据更新情况,对子行列视图进行数据更新。
    3. 使用DROP语句删除一个视图,由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除。同样的原因,删除基表时,由该基表导出的所有视图定义都必须显式删除。
    1. 实验步骤
  1. 创建一个行列子集视图xun_CS_View,给出选课成绩合格的学生的编号、教师编号、所选课程号和该课程成绩。
  2. 创建基于多个基本表的视图xun_SCT_View,这个视图由学生姓名和他所选修的课程名及讲授该课程的教师姓名构成。
  3. 创建带表达式的视图xun_EXP_View,由学生姓名及所选课程名和所有课程成绩都比原来多5分这几个属性组成
  4. 创建分组视图xun_Group_View,将学生的学号及他的平均成绩定义为一个视图。
  5. 创建一个基于视图的视图,基于(1)中建立的视图,定义一个包括学生编号、学生所选课程数目和平均成绩的视图VV_View。
  6. 查询所有选修课程“数据库原理及其应用”的学生姓名。
  7. 插入元组(S52,T02,C02,59)到视图xun_CS_View中。若是在视图的定义中存在WITH CHECK OPTION字句对插入操作由什么影响
  8. 将视图xun_CS_View(包括定义WITH CHECK OPTION)中,所有课程编号为C01的课程的成绩都减去5分。这个操作数据库是否会正确执行,为什么?如果加上5分(原来95分以上的不变)呢?
  9. 在视图xun_CS_View(包括定义WITH CHECK OPTION)删除编号S03学生的记录,会产生什么结果?
  10. 删除视图xun_SCT_View和视图xun_CS_View

4.4实验结果

1.代码如下:

create view xun_CS_View
as
select xn_Sno,xn_Tno,xn_Cno,xn_Scroce
from xun_Reports
where xn_Scroce>=60
with  check option

2.代码如下:

create view xun_SCT_View
as 
select xn_Sname,xn_Cname,xn_Tname
from xun_Students,xun_Reports,xun_Courses,xun_Teachers
where xun_Students.xn_Sno=xun_Reports.xn_Sno
and xun_Reports.xn_Cno=xun_Courses.xn_Cno
and xun_Reports.xn_Tno=xun_Teachers.xn_Tno

3.代码如下:

create view xun_EXP_View(xn_Sname,xn_Cname,xn_Scroce)
as
select xn_Sname,xn_Cname,xn_Scroce+5
from xun_Students,xun_Reports,xun_Courses
where xun_Students.xn_Sno=xun_Reports.xn_Sno
and xun_Reports.xn_Cno=xun_Courses.xn_Cno

视图如下:

数据库原理及应用实验报告-实验4-SQL的视图

 

原先的xun_Reports表视图如下,可知成绩xn_Scroce已经加5.

数据库原理及应用实验报告-实验4-SQL的视图

 

4.代码如下:

create view xun_Group_View
as
select xn_Sno,avg(xn_Scroce) avgscore
from xun_Reports
group by xn_Sno

xun_Group_View视图如下:

数据库原理及应用实验报告-实验4-SQL的视图

5.

create view xun_VV_View
as 
select xn_Sno,xn_Cno,avg(xn_Scroce) avgscore
from xun_CS_View
group by xn_Sno,xn_Cno
having avg(xn_Scroce)>=60

6.

select xn_Sname
from xun_Students
where xn_Sno in(
 select xn_Sno
 from xun_Reports
    where xn_Cno in(
    select xn_Cno
    from xun_Courses
    where xn_Cname='数据库原理及其应用'
    )
)

7.

insert into xun_CS_View
values('S52','T02','C02',59)

下会有错误信息弹出,如下:

错误信息:

消息 550,级别 16,状态 1,第 1 行

试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION,而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。

语句已终止。

数据库原理及应用实验报告-实验4-SQL的视图

 

因为建立xun_CS_View视图时加了with check option,有限制条件xn_Scroce要大于等于60,但这条记录的成绩不满足要求,所以不能成功插入。

若在建立xun_CS_View视图时不加了with check option,则可以成功插入,但视图不显示。

8.

减5

update xun_CS_View
set xn_Scroce-=5
where xn_Cno='C01'

下会有错误信息弹出,如下:

错误信息:

消息 550,级别 16,状态 1,第 1 行

试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION,而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。

语句已终止。

数据库原理及应用实验报告-实验4-SQL的视图

 

因为减5后,有些记录的xn_Scroce值会有小于60,不满足约束要求,所以报错。

加5

update xun_CS_View
set xn_Scroce+=5
where xn_Cno='C01'and xn_Scroce<95

代码正常执行

数据库原理及应用实验报告-实验4-SQL的视图

 视图变为下图:

数据库原理及应用实验报告-实验4-SQL的视图

 加5后,不影响约束条件,所以可以正常执行。

9.

delete
from xun_CS_View
where xn_Sno='S03'

正常执行

10.

drop view xun_CS_View,xun_SCT_View

4.5实验体会:

1.with check option会限制视图的更新update,插入insert和删除delete,需要保证满足视图定义中的谓词条件。

2.不使用with check option语句,但是有谓词条件,不满足谓词条件的操作代码可以正常执行,但是这条数据就不会显示在视图中。

3.基于视图建立的视图和基于表建立视图的操作很相似,基本一样的。

4.使用DROP语句删除一个视图,由该视图导出的其他视图定义仍在数据字典中,但已不能使用,必须显式删除。

4.6附件:文章来源地址https://www.toymoban.com/news/detail-425498.html

1.
create view xun_CS_View
as
select xn_Sno,xn_Tno,xn_Cno,xn_Scroce
from xun_Reports
where xn_Scroce>=60
with  check option

2.
create view xun_SCT_View
as 
select xn_Sname,xn_Cname,xn_Tname
from xun_Students,xun_Reports,xun_Courses,xun_Teachers
where xun_Students.xn_Sno=xun_Reports.xn_Sno
and xun_Reports.xn_Cno=xun_Courses.xn_Cno
and xun_Reports.xn_Tno=xun_Teachers.xn_Tno

3.
create view xun_EXP_View(xn_Sname,xn_Cname,xn_Scroce)
as
select xn_Sname,xn_Cname,xn_Scroce+5
from xun_Students,xun_Reports,xun_Courses
where xun_Students.xn_Sno=xun_Reports.xn_Sno
and xun_Reports.xn_Cno=xun_Courses.xn_Cno

4.
create view xun_Group_View
as
select xn_Sno,avg(xn_Scroce) avgscore
from xun_Reports
group by xn_Sno

5.
create view xun_VV_View
as 
select xn_Sno,xn_Cno,avg(xn_Scroce) avgscore
from xun_CS_View
group by xn_Sno,xn_Cno
having avg(xn_Scroce)>=60

6.
select xn_Sname
from xun_Students
where xn_Sno in(
 select xn_Sno
 from xun_Reports
    where xn_Cno in(
    select xn_Cno
    from xun_Courses
    where xn_Cname='数据库原理及其应用'
    )
)


7.
insert into xun_CS_View
values('S52','T02','C02',59)

8.
减5
update xun_CS_View
set xn_Scroce-=5
where xn_Cno='C01'
加5
update xun_CS_View
set xn_Scroce+=5
where xn_Cno='C01'and xn_Scroce<95

9.
delete
from xun_CS_View
where xn_Sno='S03'

10.
drop view xun_CS_View,xun_SCT_View

到了这里,关于数据库原理及应用实验报告-实验4-SQL的视图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库原理实验报告

    这门课是大二学年数据库原理这门必修理论课中需要写报告的部分,要求学会使用sql语句,之前忘发了,今天想起来上传一下。 当时是和室友一起讨论着写完的,因为其中有几个问题实现起来还是比较复杂的,我推荐大家不要闷头自己写,否则万一写错了也不知道。但也不是

    2024年02月09日
    浏览(46)
  • 数据库SQL Server实验报告 之 SQL语言进行简单查询(3/8)

    实验名称          SQL语言进行简单查询 注意:原版word在下载资源里面(免费下载) 实验目的及要求: 掌握各种查询的SQL脚本写法,包括SELECT、FROM、WHERE、GROUP BY、HAVING子句的用法,特别要求比较内连接、外连接的结果 在XSGL数据库中,使用各种查询条件完成指定的查询

    2024年02月02日
    浏览(63)
  • GaussDB云数据库SQL应用系列-视图管理

    一、前言 GaussDB是一款基于云计算技术的高性能关系型数据库,支持多种数据模型和分布式架构。在GaussDB中,视图管理是非常重要的一项功能,它可以帮助用户更方便地管理和查询数据。 数据库视图管理是指对数据库中的视图进行创建、修改、删除、查询等操作的过程。 参

    2024年02月06日
    浏览(118)
  • 《数据库原理》实验六 SQL数据查询实验

    本系列传送门: 实验二 SQL Server SSMS工具创建和管理数据库及数据表 实验三 SQL Server SSMS工具添加数据 实验四 SQL的数据定义语句 实验五 数据库完整性约束的实现与验证 实验六 SQL数据查询实验 实验六(2) SQL数据查询—连接查询 实验七 SQL的数据更新和视图 实验八 T_SQL编程

    2024年02月03日
    浏览(101)
  • 【SQL Server】数据库开发指南(六)索引和视图的使用技巧、方法与综合应用

    本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念和基本步骤 【SQL Server】数据库开发指南(二)MSSQL数据库开发对

    2024年02月06日
    浏览(80)
  • 书店销售管理系统----数据库原理及应用综合实验

    枯木逢春犹再发,人无两度再少年🍂 系统主要模块如下: (1) 书店销售管理系统设计与实现—图书入库管理及查询统计 图书入库管理:维护入库图书信息(如图书编号、书名、作者、价格、图书分类、出版社等)。自动计算库存。 图书查询统计:按图书分类,出版社、书

    2024年02月06日
    浏览(49)
  • 数据库系统原理及MySQL应用教程实验四MySQL数据库表数据的查询操作

    1.掌握SELECT 语句的基本语法格式。 2.掌握SELECT 语句的执行方法。 3.掌握SELECT 语句的 GROUP BY 和 ORDER BY 子句的作用。 验证性实验:在公司的部门员工管理数据库的bumen表和yuangong表上进行信息查询。 设计性试验:将在student表和score表上进行查询。 ( 一 ) 验证性实验 在

    2024年02月05日
    浏览(57)
  • 数据库原理及应用(MySQL版)MySQL实验指导参考答案(实验一到实验八)

    实验二 实验三 实验五 实验六 实验七 实验八

    2024年02月04日
    浏览(44)
  • 大数据技术原理与应用实验3——NoSQL和关系数据库的操作比较

    (1)理解四种数据库(MySQL、HBase、Redis和MongoDB)的概念以及不同点; (2)熟练使用四种数据库操作常用的Shell命令; (3)熟悉四种数据库操作常用的Java API。 (1)Linux操作系统(CentOS7.5) (2)VMware Workstation Pro 15.5 (3)远程终端工具Xshell7 (4)Xftp7传输工具 (5)Hadoop版本:

    2024年02月02日
    浏览(44)
  • 数据库 实验8 视图

    实验8  视图 一、实验目的: (1) 理解视图的概念。 (2) 掌握创建、更改、删除视图的方法。 (3) 掌握使用视图来访问数据的方法。 二、实验要求 1、学生提前准备好实验报告,预习并熟悉实验步骤; 2、遵守实验室纪律,在规定的时间内完成要求的内容; 3、1~2人为1小组,实验

    2024年02月06日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包