收藏 分享(赏)

西北工业大学数据库实验报告4.doc

上传人:weiwoduzun 文档编号:3676187 上传时间:2018-11-15 格式:DOC 页数:8 大小:183.54KB
下载 相关 举报
西北工业大学数据库实验报告4.doc_第1页
第1页 / 共8页
西北工业大学数据库实验报告4.doc_第2页
第2页 / 共8页
西北工业大学数据库实验报告4.doc_第3页
第3页 / 共8页
西北工业大学数据库实验报告4.doc_第4页
第4页 / 共8页
西北工业大学数据库实验报告4.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、数据库原理实验报告学号 姓名 班级 日期题目:实验四:视图与索引 2014302692 孟玉军 10011402 16.10.18一. 实验内容、步骤以及结果1 在 Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是 1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5 分)2 用两种不同的 SQL语句创建第五版教材第三章 第 9题中要求的视图(视图名:V_SPJ)(10 分,每种方法 5分)。1).create view v_spjas select sno,pno,qtyfrom J,SPJwhere j.jno=spj.jno and jna

2、me=三建2).create view view_2as select sno,pno,qtyfrom SPJwhere jno =(select jno from jwhere jname =三建)3 用 SQL语句完成第五版教材第三章 第 9题中的视图查询(10 分,每小题 5分)。1).select pno,sum(qty) as sum_qtyfrom v_spjgroup by pno结果:2).select pno,qtyfrom v_spjwhere sno=S14 用 SQL语句完成视图的数据更新。(15 分,每题 5分)(1) 给视图 V_SPJ中增加一条数据。提示:- SP

3、J表中 JNO允许为空时,数据可以插入基本表,此时 JNO为 NULL,由于 JNO为 NULL,所以视图中没有该条数据。- SPJ表中 JNO不能为空时,可以使用 instead of触发器实现。 :jno 允许为空时:insert into v_spjvalues(S4,P3,100)结果改变:select * from v_spj没有出现刚刚插入的那条数据 :jno不能为空时:Jno不能为 NULL设立触发器:create trigger instead_of_insert on v_spjinstead of insert asbegin declare sno char(10)dec

4、lare pno char (10)declare qty int select sno=sno,pno=pno,qty=qty from insertedinsert into SPJ values(sno,pno,J1,qty)end执行语句:insert into v_spjvalues (S5,P4,100)结果:(2) 修改视图 V_SPJ中的任意一条数据的供应数量。update v_spjset qty=300 where sno=S1and pno=P1修改前:修改后:(3) 删除视图 V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;也可以

5、考虑用 instead of触发器实现)。创建 instead of触发器:create trigger instead_of_delete on v_spjinstead of delete as begin declare sno char(10)declare pno char(10)declare qty int select sno=sno,pno =pno,qty=qty from deleteddelete SPJ where sno=sno and pno=pno and jno=J1 and qty =qty end 删除前:删除第一条数据:delete from v_spj

6、where sno=S1 and pno=P15 用图形用户界面对 Student数据库中 C表的 Cno字段创建一个降序排列的唯一索引,索引名称 IX_CNo。(5 分)6 使用 SQL语句对 Student数据库完成以下的索引操作。(15 分,每题 5分)(1) 在 C表的 CName属性上创建一个非唯一性的聚簇索引,索引名 IX_CName。(提示:创建这个聚簇索引之前,需要首先删除 C表的主键约束。SQL Server 中,给某张表指定主键时,会自动创建为主属性一个聚簇索引。)先删除原主键:alter table Cdrop constraint pk_cnocreate cluste

7、red index IX_Cname on C (cname)(2) 在 SC表上创建一个名为 IX_Cnosno的非聚簇复合索引,该索引是针对 sno,cno属性集建立的升序索引。create nonclustered index IX_cnosno on SC(cno asc ,sno asc)(3) 删除 C表的索引 IX_CName。drop index C.IX_Cname7 自己设计一个实验验证索引对数据库查询效率的提升作用。(40 分)(提示:需要数据量比较大的情况下才容易进行对比)1).利用随机数生成 8585个数据来进行查询 2)未建立索引之前:查询选修了 1课程的学生的学号和成绩:select sno,grade from SCwhere cno=1此时可以通过建立索引来减少查询开销3).建立索引GOCREATE NONCLUSTERED INDEX ON dbo.SC (cno)INCLUDE (sno,grade)GO再进行查询:二. 实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。通过创建合适的索引,可以令问题简单化,减少查询开支,加快查询速度 批阅者: 批阅日期:实验成绩: 批注:

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

当前位置:首页 > 规范标准 > 实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报