数据库原理及应用实验报告 5.docx

上传人:b****5 文档编号:5580943 上传时间:2022-12-28 格式:DOCX 页数:10 大小:161.69KB
下载 相关 举报
数据库原理及应用实验报告 5.docx_第1页
第1页 / 共10页
数据库原理及应用实验报告 5.docx_第2页
第2页 / 共10页
数据库原理及应用实验报告 5.docx_第3页
第3页 / 共10页
数据库原理及应用实验报告 5.docx_第4页
第4页 / 共10页
数据库原理及应用实验报告 5.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据库原理及应用实验报告 5.docx

《数据库原理及应用实验报告 5.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用实验报告 5.docx(10页珍藏版)》请在冰豆网上搜索。

数据库原理及应用实验报告 5.docx

数据库原理及应用实验报告5

实验成绩

 

《数据库系统原理及应用》

 

专业班级:

计算机科学与技术

学号:

************

******

********

2013年11月14日

实验五名称:

SQLServer视图和索引

一、实验内容及要求

1.创建视图和查看视图的定义

任务1:

用对象资源管理器管理器方式,创建一个名为“v1”的视图,用于查询计算机网络专业男生的学号、姓名、出生日期,并将视图的列名分别改为:

学生学号、男生姓名、生日。

任务2:

用对象资源管理器管理器方式,创建一个名为“v成绩”的视图,用于查询成绩在60~80之间的学生学号、姓名、专业名、课程名、成绩信息。

任务3:

用命令方式,创建一个名为“V个人最高分”的视图,用于查询每门课程的最高分的学生学号、姓名、课程号、成绩信息。

任务4:

用命令方式,创建一个名为“V全校最高分”的视图,用于查询所有成绩中的最高分的学生学号、姓名、专业名、课程号、成绩。

2.修改视图

任务:

用命令方式,在“v1”的视图中增加两列:

专业和系。

3.使用视图向数据表中插入数据

任务1:

用命令方式,在“V1”视图中添加如下两条记录,注意查看添加的结果。

分析为什么?

(‘020106’,‘李好’,‘1981-04-22’,‘计算机网络’,‘计算机’)

(‘020107’,‘周权’,‘1981-07-08’,‘信息安全’,‘计算机’)

任务2:

用命令方式,在“V1”视图中设置“withcheckoption”属性,然后通过视图向基表中添加如下两条记录,注意查看添加的结果。

(‘020108’,‘赵伟’,‘1980-05-07’,‘计算机网络’,‘计算机’)

(‘020109’,‘刘齐’,‘1981-12-02’,‘信息安全’,‘计算机’)

请思考:

这两条记录能否插入到基表中?

能否在视图中能否显示?

4.使用视图删除数据表中的数据

任务1:

用命令方式或对象资源管理器管理器方式,删除“V1”视图中,学号为‘******’的记录。

任务2:

用命令方式或对象资源管理器管理器方式,删除“v成绩”视图中的记录。

观察会出现什么情况?

为什么?

5.删除视图

要求:

用命令方式或对象资源管理器管理器方式,删除创建的任何一个视图。

6.创建索引

任务1:

在course表的“课程名”列上创建一个非聚集索引,索引名为“ix_kcm”,并降序排列。

任务2:

在course表中,重新创建名为“ix_kcm”的索引,使其成为惟一性的非聚集索引。

任务3:

已知sc表中的“学号”和“课程号”两列已设置为主键,主键约束名为“PK_xs_kc”,请重新创建这两列的组合索引,使学号降序排列,使索引页填满60%后就换新页进行填充。

二、实验目的

掌握创建、修改、删除视图的方法;

掌握查询视图的方法;

掌握用命令方式创建索引的方法

三、实验步骤及运行结果

1.创建视图和查看视图的定义

任务1:

用对象资源管理器管理器方式,创建一个名为“v1”的视图,用于查询计算机网络专业男生的学号、姓名、出生日期,并将视图的列名分别改为:

学生学号、男生姓名、生日。

用对象资源管理器管理器方式,建立的“V1”视图:

运行代码和结果:

select*fromV1

任务2:

用对象资源管理器管理器方式,创建一个名为“v成绩”的视图,用于查询成绩在60~80之间的学生学号、姓名、专业名、课程名、成绩信息。

用对象资源管理器管理器方式,建立的“V成绩”视图:

运行代码和结果:

select*fromV成绩

任务3:

用命令方式,创建一个名为“V个人最高分”的视图,用于查询每门课程的最高分的学生学号、姓名、课程号、成绩信息。

用命令方式,创建的“V个人最高分”的视图代码:

createviewV个人最高分

as

selectst.sno学生学号,sname姓名,cno课程号,sscore成绩信息

fromstudentstjoinscxkonst.sno=xk.sno

wheresscorein(selectMAX(sscore)fromscwhereo=ogroupbycno)

查询代码及运行结果图:

select*fromV个人最高分

 

任务4:

用命令方式,创建一个名为“V全校最高分”的视图,用于查询所有成绩中的最高分的学生学号、姓名、专业名、课程号、成绩。

用命令方式,创建的“V全校最高分”视图代码:

createviewV全校最高分

as

selectst.sno学生学号,sname姓名,zhname专业,cno课程号,sscore成绩

fromstudentstjoinsconst.sno=sc.sno

wheresscore=(selectMAX(sscore)fromsc)

查询代码及运行结果图:

select*fromV全校最高分

2.修改视图

任务:

用命令方式,在“V1”的视图中增加两列:

专业和系。

用命令方式,在“V1”的视图中增加两列:

专业和系的代码:

alterviewV1

as

selectsno学生学号,sname男生姓名,birthdate生日,zhname专业,sdept系别

fromstudentwherezhname='计算机网络'andssex='男'

查询代码及运行结果图:

select*fromV1

添加前:

添加后:

3.使用视图向数据表中插入数据

任务1:

用命令方式,在“V1”视图中添加如下两条记录,注意查看添加的结果。

分析为什么?

(‘020106’,‘李好’,‘1981-04-22’,‘计算机网络’,‘计算机’)

(‘020107’,‘周权’,‘1981-07-08’,‘信息安全’,‘计算机’)

用命令方式,在“V1”视图中添加如下两条记录代码:

insertintoV1

values('020106','李好','1981-04-22','计算机网络','计算机')

insertintoV1

values('020107','周权','1981-07-08','信息安全','计算机')

运行结果图:

添加的结果图:

分析:

因为‘周权’的记录不满足视图的定义,即视图中只显示“计算机网络”专业的学生信息,所以‘周权’的信息只能在基表中看到,而不能在视图中看到。

任务2:

用命令方式,在“V1”视图中设置“withcheckoption”属性,然后通过视图向基表中添加如下两条记录,注意查看添加的结果。

(‘020108’,‘赵伟’,‘1980-05-07’,‘计算机网络’,‘计算机’)

(‘020109’,‘刘齐’,‘1981-12-02’,‘信息安全’,‘计算机’)

用命令方式,在“V1”视图中设置“withcheckoption”属性:

alterviewV1

as

selectsno学生学号,sname男生姓名,birthdate生日,zhname专业,sdept系别

fromstudentwherezhname='计算机网络'andssex='男'

withcheckoption

像基表中添加内容的代码如下:

insertintoV1

values('020108','赵伟','1980-05-07','计算机网络','计算机')

insertintoV1

values('020109','刘齐','1981-12-02','信息安全','计算机')

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

语句已终止。

运行结果图:

请思考:

这两条记录能否插入到基表中?

能否在视图中能否显示?

“赵伟”的信息既能插入到基表中,也能在视图中看到。

但“刘齐”的信息都不能,且系统会提示错误。

因为withcheckoption强制针对视图执行的所有数据修改都必须符合在select_statement中设置的条件。

4.使用视图删除数据表中的数据

任务1:

用命令方式或对象资源管理器管理器方式,删除“V1”视图中,学号为‘******’的记录。

运行结果图和代码:

deletefromV1where学生学号='020108'

运行前:

运行后:

任务2:

用命令方式或对象资源管理器管理器方式,删除“v成绩”视图中的记录。

观察会出现什么情况?

为什么?

删除“v成绩”视图中的记录的代码:

deletefromV成绩where学生学号='201116910231'

运行结果图:

因为:

如果视图引用了多个表时,无法用delete命令删除数据。

5.删除视图

要求:

用命令方式或对象资源管理器管理器方式,删除创建的任何一个视图。

用命令方式删除创建的“V全校最高分”视图的代码和运行结果:

dropviewV全校最高分

6.创建索引

任务1:

在course表的“课程名”列上创建一个非聚集索引,索引名为“ix_kcm”,并降序排列。

创建索引的代码和截图:

use学生数据库

go

createindexix_kcmoncourse(cnamedesc)

Go

任务2:

在course表中,重新创建名为“ix_kcm”的索引,使其成为惟一性的非聚集索引。

创建索引的代码和截图:

use学生数据库

go

createuniqueindexix_kcmoncourse(cnamedesc)

Go

任务3:

已知sc表中的“学号”和“课程号”两列已设置为主键,主键约束名为“PK_xs_kc”,请重新创建这两列的组合索引,使学号降序排列,使索引页填满60%后就换新页进行填充。

创建索引的代码和截图:

createindexix_group_xi

onsc(snodesc,cno)

withpad_index,

fillfactor=60

 

四、实验心得

这次实验主要是对SQLserver2008的视图和索引功能,这两项都跟查询有密切的关系。

不同创建视图的方法,视图创建后的查看、修改、删除等操作,根据不同的需要来调整视图的显示。

一开始的我,对于创建这些是手忙脚乱的,翻阅了好多的资料才更加深入的了解了试图和索引的使用方法。

索引创建,并在创建过程中体会其创建的原则,索引的查看、删除等操作。

这次实验使我对SQLserver2008的查询系统有了进一步的了解,对使用SQLserver2008不同功能进行更有效率的查询有了更深的了解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1