西北工业大学数据库实验报告记录4.docx

上传人:b****4 文档编号:5047083 上传时间:2022-12-12 格式:DOCX 页数:8 大小:145.91KB
下载 相关 举报
西北工业大学数据库实验报告记录4.docx_第1页
第1页 / 共8页
西北工业大学数据库实验报告记录4.docx_第2页
第2页 / 共8页
西北工业大学数据库实验报告记录4.docx_第3页
第3页 / 共8页
西北工业大学数据库实验报告记录4.docx_第4页
第4页 / 共8页
西北工业大学数据库实验报告记录4.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

西北工业大学数据库实验报告记录4.docx

《西北工业大学数据库实验报告记录4.docx》由会员分享,可在线阅读,更多相关《西北工业大学数据库实验报告记录4.docx(8页珍藏版)》请在冰豆网上搜索。

西北工业大学数据库实验报告记录4.docx

西北工业大学数据库实验报告记录4

西北工业大学数据库实验报告记录4

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

《数据库原理》实验报告

题目:

实验四:

视图与索引

学号

姓名

班级

日期

2014302692

孟玉军

10011402

16.10.18

1.实验内容、步骤以及结果

1.在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。

(5分)

2.用两种不同的SQL语句创建第五版教材第三章第9题中要求的视图(视图名:

V_SPJ)(10分,每种方法5分)。

1).

createviewv_spj

as

selectsno,pno,qty

fromJ,SPJ

wherej.jno=spj.jnoandjname='三建'

2).

createviewview_2

as

selectsno,pno,qty

fromSPJ

wherejno=(selectjnofromj

wherejname='三建')

3.用SQL语句完成第五版教材第三章第9题中的视图查询(10分,每小题5分)。

1).

selectpno,sum(qty)assum_qty

fromv_spj

groupbypno

结果:

2).

selectpno,qty

fromv_spj

wheresno='S1'

4.用SQL语句完成视图的数据更新。

(15分,每题5分)

(1)给视图V_SPJ中增加一条数据。

提示:

-SPJ表中JNO允许为空时,数据可以插入基本表,此时JNO为NULL,由于JNO为NULL,所以视图中没有该条数据。

-SPJ表中JNO不能为空时,可以使用insteadof触发器实现。

1:

jno允许为空时:

insert

intov_spj

values('S4','P3',100)

结果改变:

select*fromv_spj

没有出现刚刚插入的那条数据

2:

jno不能为空时:

Jno不能为NULL

设立触发器:

createtriggerinstead_of_insertonv_spj

insteadofinsert

as

begin

declare@snochar(10)

declare@pnochar(10)

declare@qtyint

select@sno=sno,@pno=pno,@qty=qty

frominserted

insertintoSPJvalues(@sno,@pno,'J1',@qty)

end

执行语句:

insertintov_spj

values('S5','P4',100)

结果:

(2)修改视图V_SPJ中的任意一条数据的供应数量。

updatev_spj

setqty=300

wheresno='S1'andpno='P1'

修改前:

修改后:

(3)删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以考虑用insteadof触发器实现)。

创建insteadof触发器:

createtriggerinstead_of_delete

onv_spj

insteadofdelete

as

begin

declare@snochar(10)

declare@pnochar(10)

declare@qtyint

select@sno=sno,@pno=pno,@qty=qty

fromdeleted

deleteSPJwheresno=@snoandpno=@pnoandjno='J1'andqty=@qty

end

删除前:

删除第一条数据:

deletefromv_spj

wheresno='S1'andpno='P1'

 

5.用图形用户界面对Student数据库中C表的Cno字段创建一个降序排列的唯一索引,索引名称IX_CNo。

(5分)

6.使用SQL语句对Student数据库完成以下的索引操作。

(15分,每题5分)

(1)在C表的CName属性上创建一个非唯一性的聚簇索引,索引名IX_CName。

(提示:

创建这个聚簇索引之前,需要首先删除C表的主键约束。

SQLServer中,给某张表指定主键时,会自动创建为主属性一个聚簇索引。

先删除原主键:

altertableC

dropconstraintpk_cno

createclusteredindexIX_CnameonC(cname)

(2)在SC表上创建一个名为IX_Cnosno的非聚簇复合索引,该索引是针对sno,cno属性集建立的升序索引。

createnonclusteredindexIX_cnosnoonSC(cnoasc,snoasc)

(3)删除C表的索引IX_CName。

dropindexC.IX_Cname

 

7.自己设计一个实验验证索引对数据库查询效率的提升作用。

(40分)

(提示:

需要数据量比较大的情况下才容易进行对比)

1).利用随机数生成8585个数据来进行查询

2)未建立索引之前:

查询选修了1课程的学生的学号和成绩:

selectsno,grade

fromSC

wherecno='1'

此时可以通过建立索引来减少查询开销

3).建立索引

GO

CREATENONCLUSTEREDINDEX[]

ON[dbo].[SC]([cno])

INCLUDE([sno],[grade])

GO

再进行查询:

 

2.实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)

除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。

通过创建合适的索引,可以令问题简单化,减少查询开支,加快查询速度

批阅者:

批阅日期:

实验成绩:

批注:

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

当前位置:首页 > 人文社科 > 教育学心理学

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

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