当前位置:文档之家› 数据库实验4

数据库实验4

任课教师:舒挺
《数据库原理及应用》
(2013-2014学年第1学期)




学号:
姓名:
班级:
实验四数据库的视图定义及维护
一、实验目的:
本实验的目的是使学生掌握视图的定义与维护操作,加深对视图在关系数据库中的作用的理解。

二、相关知识:
视图是根据子模式建立的虚拟表。

一个视图可以由一个表构造,也可以由多个表构造。

利用企业管理器和视图创建向导进行创建,查看和修改视图就如同对表的操作一样,非常容易。

三、实验内容:
本实验的主要内容是:
1)创建和删除视图
2)查询和更新视图
具体完成以下例题。

例1 建立信息系学生的视图
例2 建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生。

例3 建立信息系选修了’ 1’号课程的学生视图
例4 建立信息系选修了’1’号课程且成绩在90分以上的学生视图
例5 定义一个反映学生出生年份的视图
四、实验步骤
1.创建视图
下面利用了SQL Server中提供的视图创建向导,来实现例3(建立信息系选修了1号
课程的学生视图)。

1)打开企业管理器窗口,确认服务器,打开数据库文件夹,选中新视图所在的数据库(此例为学生选课数据库)。

2)选择菜单:[工具]|[向导]
3)在如图1所示的向导选择对话框中,单击数据库左边的“+”号,使之展开。

选择“创建数据库向导”项,单击“确定”按键。

4)进入创建视图向导后,首先出现的是欢迎使用创建视图向导对话框,其中简单介绍了该向导的功能。

单击“下一步”后,就会出现选择数据库对话框。

5)在选择数据库对话框中,选择视图所属的数据库。

本例的数据库为“学生管理”。

单击“下一步”按键,则进入选择表对话框。

6)在选择表对话框中,列出了指定数据库中所有用户定义的表。

用户可以从中选择构造视图所需的一个表或者多个表,被选中的表成为构造视图的参考表。

选择构
造视图参考表的方法是:用鼠标单击表后的“包含在视图中”列,使复选框为选
中状态。

本例的数据库中只有student表和sc表,它们都应当被选中。

单击“下一步”按键,则进入选择对话框。

7)列选择对话框中以表格形式列出了创建视图参考表的全部属性,每个属性占表的一行,创建视图参考属性可以在表格中选出。

选择视图参考属性的方法是用鼠标
单击属性名后边的“选择列”列,使复选框为选中状态。

本例中student.sno,
student.sname和sc.grade属性要被选中。

单击“下一步”按键,进入创建视图的定义限制对话框。

8)在定义限制对话框中,输入表的连接和元组选择条件。

本例输入“Sdept=’IS’ AND student.sno = sc.sno AND o = ‘1’”。

单击“下一步”按键,出现视图名对话框。

9)在输入视图名对话框中输入所建视图的标识名。

本例的视图名为“IS—C1”。

单击“下一步”按键,则出现视图创建完成对话框。

在完成对话框中给出了根据前面对话框输入的内容译成的SQL语句。

您可以认真
阅读该SQL语句,如果发现与要求有不符合之处可以直接进行修改。

确认无误后单击“完成”按钮。

随后出现一个通知用户已成功创建视图的信息框,
单击“确认”按钮后,整个创建视图工作就完成了。

2.查看和修改视图
视图创建好后,就可以利用它进行查询信息了。

如果发现视图的结构不能很好地满足要求,还可以在企业管理器对它进行修改。

在企业管理器中修改视图结构需要首先选择服务器,数据库,并使数据库展开,然后用鼠标右击要修改的视图,在弹出的菜单上选择“设计视图”项,则弹出一个视
图设计对话框。

当对其修改完毕后关闭窗口,新的视图结构就会取代原先的结构。

3.将查询需求用SQL语言表示;在SQL查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。

五、实验代码及结果
1、先还原数据库,并建立正确的关系图
2、创建视图
可通过SQL语句创建,也可直接单击鼠标右键,选择新建视图。

例1 建立信息系学生的视图
SQL语句
运行结果新增视图
视图界面
分析:CREAT VIEW语句的结果只是把视图的定义存入数据字典,并不执行其中的SELECT语句,只是对视图进行查看时,才将数据查出。

即建立IS_Student视图来存放信息系学生的查询结果,通过WHERE子句来给顶条件在student表中查询相应结果。

例2 建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生SQL语句
运行结果新增视图
视图界面
分析:在定义IS_Student2视图时加上WITH CHECK OPTION子句,以后对该视图进行插入、修改和删除操作时,RDBMS会自动加上“Sdept=‘IS’”的条件,即可以保证该视图只有信息系学生。

例3 建立信息系选修了’ 1’号课程的学生视图
SQL语句
运行结果新增视图
视图界面
分析:在IS_Student3视图中包含了student表与sc表的同名列Sno,则需要在视图名后面明确说明视图的各个属性列名。

然后再根据具体条件进行查询。

例4 建立信息系选修了’1’号课程且成绩在90分以上的学生视图
SQL语句
运行结果新增视图
视图界面
分析:IS_Student4视图是建立以定义好的IS_Student3视图之上的。

在建立IS_Student4视图时,直接根据相应的条件在已经定义好的视图IS_Student3上进行进一步的查询而得到最后的结果。

例5 定义一个反映学生出生年份的视图
SQL语句
运行结果新增视图
视图界面
分析:IS_Student5视图是一个带有表达式的视图,视图中的出生年份可通过当前的年份减去年龄得到。

六、实验心得。

相关主题