数据库实验 实验六 视图创建与管理

                       注:此内容仅仅只是记录成长与分享学习,不能保证绝对正确

实验六 视图创建与管理

实验日期:  2022 5 13 日  星期      实验地点:   宿舍  

一 实验目的

1. 在可视化管理环境中创建、删除视图,浏览视图。

2. 熟练掌握视图的定义和删除的SQL语句。

3. 掌握对视图的查询、更新等操作,理解可更新视图以及不可更新视图的实质。

二 实验要求

1. 请大家务必动手完成实验,实验过程中,会随机抽查提问,作为实验成绩重要参考。

2. 请将数据库studb的两个基本文件自行保留,下次实验在此基础上进行。

3. 请在本实验报告指定方框认真填写对应的实验代码或实验结果。

三 实验内容

1. 在可视化管理环境中创建、删除视图,以及对视图进行浏览。

2. 运用SQL语句创建可更新的简单视图和包含聚合函数的不可更新视图。

3. 运用SQL语句对所创建的视图进行查询、更新。

四 实验步骤

附加前述数据库,按下述要求完成实验:

1. 使用向导在可视化管理环境中创建管理视图

1)创建一个连接三个表(S,C,SC)的视图(假设将该视图命名为S_C_SC),视图含SNOSNAMECNAMESCORE共四个字段。

首先,选择创建视图菜单,如图6.1所示:

图6.1 创建视图快捷菜单

其次,在如图6.2窗口中添加本视图所关联的三个数据表S、C、SC。

图6.2 添加表

添加表后出现如图6.3所示窗口,此窗口中形象地展示了三个表之间的外键关联关系,自动产生了创建视图的SQL指令。在此基础上选择要显示的属性,保存并命名视图(S_C_SC)即可。创建视图结果如图6.4。

                                    

图6.3 创建视图可视化窗口

                                    

图6.4 视图创建结果

2)浏览视图 右击视图(dbo.S_C_SC),通过选择快捷菜单项“打开视图”即出现如图6.5所示的视图浏览结果,还可以通过快捷菜单对视图进行修改等其他操作。

图6.5 视图查询结果

3)删除视图 通过drop命令实现,SQL命令为:

drop view S_C_SC

2. 运用SQL语句创建视图

1)创建视图CS_VIEW,该视图含全体计算机系学生,要求带WITH CHECK OPTION选项。

SQL命令为:

create view CS_VIEW

as

select*

from S

where DNAME='计算机'

with check option

2)创建一个包括学生的学号及其各门功课的平均成绩的视图S_G_VIEW,完善并执行下述SQL命令:

CREATE VIEW S_G_VIEW (SNO,GAVG)

AS

SELECT  SNO   ,  AVG(SCORE)  FROM SC

GROUP BY  SNO  ;

3. 通过SQL语句对视图进行查询

1)在视图CS_VIEW上查询出年龄小于20的学生。

SQL命令为:

select *

from CS_VIEW

where AGE<20

2)在S_G_VIEW视图上查询平均成绩为80分以上的学生的学号及平均成绩。

SQL命令为:

SELECT *

FROM S_G_VIEW

where GAVG>=80;

4. 通过SQL语句对视图进行更新

1)更改视图CS_VIEW中所含的某个学生,将其年龄改为15,SQL命令为:

update CS_VIEW

set AGE=15 where SNO='S1'

若更新成功,在下框填“成功”,若失败,请解释原因:

成功

2)更改视图CS_VIEW中所含的某个学生,将其所在系改为”电子” ,SQL命令为:

update CS_VIEW

set DNAME='电子' where SNO='S1'

若更新成功,在下框填“成功”,若失败,请解释原因:

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

3)在S_G_VIEW视图上将其中某个学生的平均成绩改为90分,SQL命令为:

update S_G_VIEW

set GAVG=90 where SNO='S1'

若更新成功,在下框填“成功”,若失败,请解释原因:

失败,因其包含派生域或常量域。(视图中含有库函数AVG(),不允许更新)

五 自选动作

请在下框填写除了上述实验内容之外自选的实验内容:

创建视图S_C_SC_VIEW,含属性SNAME,CNAME,SCORE三个字段

create VIEW S_C_SC_VIEW

as

select S.SNAME,C.CNAME,SC.SCORE

from S,C,SC

where S.SNO=SC.SNO and C.CNO=SC.CNO

六 实验总结

通过本次实验,使我掌握了视图的两种创建方式,查询以及更新的SOL语句,以及一些不能对视图进行更新的情况,比如在有 WITH CHECK OPTION时,更新就有可能由于不符合 CHECK OPTION 约束而失败,还有在视图定义中有GROUP BY 语句时,是直接不允许对视图进行更新的等等,还有很多情况都不被允许对进行更新

                                                                                                                 成绩               

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我叫Ycg

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

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

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

打赏作者

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

抵扣说明:

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

余额充值