实验7 创建索引和视图及基于视图的查询

实验类型:●验证性实验  ○综合性实验  ○设计性实验

实验目的:

(1)理解索引、视图的概念。

(2)掌握使用SSMS(SQL Server Management Studio)创建索引、查看缩引、删除索引;创建视图、删除视图、 查询视图。

(3)掌握使用Transact-SQL语句创建索引、查看缩引、删除索引;创建视图、删除视图、 查询视图。

实验内容和步骤:

  1.使用SSMS创建索引、查看缩引、删除索引;创建视图、删除视图、 查询视图。

  2.使用Transact-SQL语句创建索引、查看缩引、删除索引;创建视图、删除视图、 查询视图。

要求与步骤

 1)参考实验指导书P73-P80,P113-P119

 2)为student表、course表、SC表创建关系图。

 3)在SSMS中,为student表创建一个视图,视图名称为View_student,View_student中包含sno和sname两列,然后显示一下View_student的内容来说明你建立的视图是正确的。接下来,在企业管理器SSMS中,删除视图View_student。 为student表针对学号建立一个聚簇索引,然后,向student表中添加三条记录,其学号是乱序的,查询student表中的所有记录,注意观察最后输入的三条记录的顺序是否有变化,并思考变化的原因是什么?

4)用命令方式为借阅表创建一个基于借书日期列的按升序排列非聚簇索引IX_日期,并查看表中数据的顺序是否有改变。

5)用命令方式为图书表创建一个基于价格列的按降序排列的普通索引IX_价格,并查看表中数据的顺序是否有改变。

实验报告:根据实验情况和结果撰写并递交实验报告。

实验总结(学会了......; 掌握了......; 训练了......; 发现了......; 今后学习中......有待提高。)

电子报告word文件命名规则:专业班级-学号后两位-实验X-姓名.doc, 如信息123班学号为201212030315的郭海涛同学实验7报告word文件命名则应是:信息123-15-实验7-郭海涛.doc, 其中 .doc是Word文件扩展名。

参考程序

1.创建student、course、SC表;鼠标右击“数据库关系图”在出现的界面中选择“新建数据库关系图”然后在出现的界面中依次添加表即可。

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_聚簇索引

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_聚簇索引_02

2.鼠标右键“视图”按钮,在出现的界面中点击“新建视图”按钮,然后在出现的界面中添加“Student”表,然后选中“Sno”和“Sname”两列,并给其取别名

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_数据库_03

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_SQL_04

建立好视图之后,再“新建查询”输入查询语句即可得到视图。

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_聚簇索引_05

删除视图:鼠标右键要删除的视图的名称然后点击“删除”按钮然后确认即可。

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_SQL_06

聚簇索引一般只能有一个,默认为主键,不能显示删除,但是可以隐式删除。

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_SQL_07

删除之后再为数据表添加聚簇索引,并且查看学生数据表。

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_SQL_08

向Student表中添加三条记录,查看添加进去的记录顺序是否有变化

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_SQL_09

插入之后顺序发生了变化,因为为学号建立了索引并且学号也是主键,插入之后按学号顺序排列。

3.新建图书借阅表,编辑好数据之后,查看数据顺序

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_数据库_10

用命令方式为借阅表创建一个基于借书日期列的按升序排列非聚簇索引IX_日期,查看数据表变化。

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_聚簇索引_11

这里数据发生了变化,但是不是根据我们设置的按照日期升序排列而是按照学号升序排列的,导致这样的原因可能是因为Sno是主键的关系。

4.创建图书表books,并且查看图书表数据

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_查询视图创建语句_12

为books表创建一个基于价格列的按降序排列的普通索引IX_价格,查看表数据

update 唯一索引 x locks rec but not gap waiting 唯一索引创建语句_查询视图创建语句_13

查看发现数据表顺序没有改变,可能是主键是书名的原因。

实验总结:通过本次实验我学会了给数据表创建关系图,创建视图、删除视图,给数据表创建索引和删除索引;掌握了创建关系图、创建视图、删除视图、创建索引和删除索引的T-SQL语句和对数据库的一些操作;训练了我的逻辑思维能力和对数据库的基本操作的能力;发现了自己在T-SQL语句方面和创建聚簇索引方面的一些不足;在今后的学习中我的数据库的操作能力有待提高。