实验七 索引与视图实验

更新时间:2023-11-01 09:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验七 索引与视图实验

一、实验目的及要求

本实验目的是掌握视图和索引的两种创建方式,并掌握视图的使用,理解索引的优点。基本要求包括:

? 理解视图与基本表的区别。

? 掌握通过管理器和SQL进行视图的定义、修改和删除方法。 ? 掌握通过管理器和SQL进行索引的定义和删除方法。 ? 理解索引的功能及类型。

? 理解通过视图对基本表的修改。

二、实验原理及背景知识

(一)了解视图的知识

1、视图的概念与实质 视图是一种虚表,具有表的外观和部分特征,但是视图的实质是一组SELECT语句构成的SQL语句。对视图的修改都会转换为对基本表的修改,但不是所有的视图都可以修改的。

2、创建视图的SQL语法格式 CREATE VIEW view_name AS SELECT语句 WITH CHECK OPTION 其中WITH CHECK OPTION选项表示强制视图上执行的所有数据修改语句都必须符合由SELECT语句设置的准则。

(二)了解索引的知识

1、理解索引的作用

索引是用来加快数据查询速度的一种对象。索引的维护需要耗费一定资源,因此索引不是越多越好,一般经常查询的列才创建索引,经常修改的表一般不创建索引。

2、了解索引的类型 聚簇索引:索引顺序跟数据物理存储顺序一致,每个表至多有一个聚簇索引。 唯一性索引:这种索引要求字段的值是唯一的,不能重复,但可以为空。 组合索引:建立在组合字段上的创建索引。 3、创建索引的语句格式

CREATE [UNIQUE]|[ CLUSTERED] INDEX index_name ON

table_name(colum_name [ASC/DESC][,colum_name[ASC/DESC]]......) 4、创建非主键聚簇索引

在SQL Server 2005中,会自动在主键上创建聚簇索引。如果需要在非主键上创建聚簇索引,则首先要删除主键约束,再重新创建非聚簇索引的主键约束,最后再在其他字段上创建聚簇索引。

-1-

第二篇实验内容及安排

三、实验内容及步骤

(一)利用管理器管理视图

创建一个视图,显示学生姓名、课程名称、学生总评成绩,并进行视图修改。

1、展开数据库项,选择数据库stumanage,在“视图”选项上右击鼠标,弹出的快捷菜单中选择“新建视图”菜单项,打开“新视图”窗口,即视图设计器,如实验图7-1所示。

2、视图设计对话框分为4个区域,各区域的作用如下:

(1)图表区:图表区域与数据库图表很相似,它图形化地显示了视图中的表以及表之间的关联。在图表区中,可以添加或去掉视图所基于的表,也可以添加或去掉视图所包含的表列。

(2)表格区:表格区用表格显示视图所有的表列。在表格区中,可以添加或去掉视图所包含的表列,设定排序和分组,也可以通过修改某些列的取值规则来限制结果集的范围。

(3)SQL语言区:SQL语言区用Transact-SQL语句表示视图结构,可以在区域中检查SQL语句是否正确,并可以直接修改视图的SQL语句。

(4)结果区:结果区用于显示视图的结果集。单击工具条上的“!”(运行)按钮,就可以在结果区中显示当前视图的结果集。

3、在“新视图”窗口图表区,单击鼠标右键,在快捷菜单中,选择“添加表”菜单项,打开“添加表”对话框,如实验图7-2所示。

实验图 7-1 视图设计器 实验图 7-2 “添加表”对话框 4、在“添加表”对话框中,分别选择要添加的表student,再点击“添加”按钮,将student_course添加到“新视图”窗口,同理将course_class、course也添加到“新视图”窗口,如实验图7-3所示。

-2-

实验图7-3 “新视图”对话框

实验图7-4 视图查询结果

5、在实验图7-3所示的创建视图窗口,选择要引用列前的复选框,指定列的别名、排列方式和限定行输出的条件,如实验图7-4所示。

6、点击实验图7-4所示的“视图”窗口上侧的“运行”按钮,执行视图查询,在窗口下方列出视图查询结果。

-3-

第二篇实验内容及安排

7、在管理平台窗口,单击“保存”按钮,打开“另存为”对话框,输入创建的视图名(S_C_View),单击“确定”按钮,完成视图的创建。

8、浏览查看视图数据

再展开数据库中的“视图”选项,在右侧窗格内选中要浏览的视图(例如S_C_VIEW),右击鼠标,从弹出的快捷菜单中,点击“打开视图”菜单中的“返回所有行”菜单项即可像浏览表一样浏览视图数据。

9、修改视图

视图创建好后,就可以利用它进行查询信息了。如果发现视图的结构不能很好地满足要求,还可以在企业管理器中对它进行修改。

(1)用鼠标右键单击要修改结构的视图,会弹出视图功能菜单。在弹出的菜单上选择“设计视图”项,则弹出视图设计器框。并列出了视图结构的详细内容,当对其修改完毕后关闭窗口,新的视图结构就会取代原先的结构。

(2)修改刚才的视图S_C_View,为该视图增加一个表teacher,并选中教师姓名,然后设置条件,让该视图只显示“刘玉庆”老师所教的学生的成绩信息。 10、删除视图

首先在管理器平台,将鼠标指向数据库中的视图文件夹,并单击鼠标右键。在随后出现的弹出菜单中,选择“删除”项,会出现删除视图对话框。选中欲删除的视图,单击“全部移出”按钮,被选中的视图就会从视图文件夹中被移出。

(二)利用T-SQL语句管理视图

1、创建一个包括学生的学号及其各门功课的平均成绩的视图S_AVG_VIEW。

2、创一个包括教师编号、教师姓名、性别和生日的100002号部门所有教师的视图。

可以执行语句SELECT * FROM teacher1_view查看视图中的数据。 3、使用SQL 语句修改视图。

4、使用SQL 语句删除视图。

(三)利用管理器管理索引

1、展开要创建索引的数据表course目录,在“索引”目录上点击右键,选择“新建索引”,弹出新建索引界面。如实验图7-5所示。

-4-

实验图7-5 “新建索引”对话框

2、在索引名称栏中输入名称“cname_index”,然后点击“添加”按钮,在出现的“选择列”窗口中选择索引所使用的列,关闭后返回创建索引界面。同时设置索引类型为“非聚集”,并选中“唯一”复选框。如实验图7-6所示。

实验图7-6 索引建立结果

3、单击“确定”关闭窗口。这时就可以在对象管理器的“索引”目录下看到新建的索引。

(四)利用T-SQL管理索引

1、使用SQL语句为stuManage数据库的student_course表的“mark”字段创建一个非聚集索引,命名为mark_index。

2、为student表的“sName”和“sSex”字段创建一个复合唯一索引,命名为sname_sex_index。

3、使用系统存储过程sp_helpindex查看student_course表上的索引信息。

4、使用系统存储过程sp_rename将索引mark_index更名为sc_mark_index。

5、使用DROP INDEX删除索引sc_mark_index。

四、实验测验

(一)为stuManage创建视图

-5-

第二篇实验内容及安排

1、建立一个名为view_stu_info的视图,使视图显示学生姓名、性别和年龄。

2、建议一个名为view_avg_mark的视图,显示学生的学号和课程平均分。

(二)视图的使用

1、在视图view_stu_info上查询出年龄小于20的学生,并分析所出现的结果。

2、通过视图view_stu_info将学号为091650101的学生姓名改为吴明,并分析所出现的结果。

3、在view_avg_mark视图上将学号为091650101的学生的平均成绩改为90分,并分析所出现的结果。

(三)为stuManage创建索引

1、请分析数据库各个表及字段的使用情况,然后为经常查询和分组的字段创建索引。

2、请为student_course表的mark字段创建聚簇索引。

五、实验思考题

1、可更新视图必须满足哪些条件? 2、各种索引类型有什么区别? 3、能否在视图上创建索引?

-6-

本文来源:https://www.bwwdw.com/article/ol22.html

Top