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

来源:班主任总结 发布时间:2019-09-26 00:52:07 点击:
《数据库原理》实验报告 题目:
实验四:视图与索引 学号 姓名 班级 日期 孟玉军 16.10.18 一. 实验内容、步骤以及结果 1. 在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分) 2. 用两种不同的SQL语句创建第五版教材第三章 第9题中要求的视图(视图名:V_SPJ)(10分,每种方法5分)。

1). create view v_spj as select sno,pno,qty from J,SPJ where j.jno=spj.jno and jname= 三建 2). create view view_2 as select sno,pno,qty from SPJ where jno =(select jno from j where jname = 三建 ) 3. 用SQL语句完成第五版教材第三章 第9题中的视图查询(10分,每小题5分)。

1). select pno,sum(qty) as sum_qty from v_spj group by pno 结果: 2). select pno,qty from v_spj where sno= S1 4. 用SQL语句完成视图的数据更新。(15分,每题5分) (1) 给视图V_SPJ中增加一条数据。

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

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

① :jno允许为空时:
insert into v_spj values( S4 , P3 ,100) 结果改变:
select * from v_spj 没有出现刚刚插入的那条数据 ② :jno不能为空时:
Jno不能为NULL 设立触发器:
create trigger instead_of_insert on v_spj instead of insert as begin declare @sno char(10) declare @pno char (10) declare @qty int select @sno=sno,@pno=pno,@qty=qty from inserted insert into SPJ values(@sno,@pno, J1 ,@qty) end 执行语句:
insert into v_spj values ( S5 , P4 ,100) 结果:
(2) 修改视图V_SPJ中的任意一条数据的供应数量。

update v_spj set qty=300 where sno= S1 and pno= P1 修改前:
修改后:
(3) 删除视图V_SPJ中的任意一条数据(注意所创建视图可以视图消解时,才能正常删除,否则会删除失败;
也可以考虑用instead of触发器实现)。

创建instead of触发器:
create trigger instead_of_delete on v_spj instead of delete as begin declare @sno char(10) declare @pno char(10) declare @qty int select @sno=sno,@pno =pno,@qty=qty from deleted delete SPJ where sno=@sno and pno=@pno and jno= J1 and qty =@qty end 删除前:
删除第一条数据:
delete from v_spj where sno= S1 and pno= P1 5. 用图形用户界面对Student数据库中C表的Cno字段创建一个降序排列的唯一索引,索引名称IX_CNo。(5分) 6. 使用SQL语句对Student数据库完成以下的索引操作。(15分,每题5分) (1) 在C表的CName属性上创建一个非唯一性的聚簇索引,索引名IX_CName。

(提示:创建这个聚簇索引之前,需要首先删除C表的主键约束。SQL Server中,给某张表指定主键时,会自动创建为主属性一个聚簇索引。) 先删除原主键:
alter table C drop constraint pk_cno create clustered 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_Cname 7. 自己设计一个实验验证索引对数据库查询效率的提升作用。(40分) (提示:需要数据量比较大的情况下才容易进行对比) 1).利用随机数生成8585个数据来进行查询 2)未建立索引之前:
查询选修了1课程的学生的学号和成绩:
select sno,grade from SC where cno= 1 此时可以通过建立索引来减少查询开销 3).建立索引 GO CREATE NONCLUSTERED INDEX [] ON [dbo].[SC] ([cno]) INCLUDE ([sno],[grade]) GO 再进行查询:
二. 实验中出现的问题以及解决方案(对于未解决问题请将问题列出来) 除了标题内容以外,该部分内容中还可以写对于实验的一些感受,建议,意见等。

通过创建合适的索引,可以令问题简单化,减少查询开支,加快查询速度 批阅者:
批阅日期:
实验成绩:
批注:
中部石漠化综合防治—水土保持区,要加强林草植被的保护与恢复,加强山洪地质灾害防治,加强石漠化综合治理,遏制石漠化蔓延,增强区域水土保持能力;
东部生物多样性保护—水土保持区,要加强自然保护区建设和流域水土流失区综合治理,切实保护生物多样性和特有自然景观,增强森林生态系统功能。

推荐访问:
上一篇:[2016年北京理工大学法学院法律硕士(法学)(专业学位)之法理学复试笔试仿真模拟题.doc] 北京理工大学法律硕士非法学
下一篇:最后一页

Copyright @ 2013 - 2018 韩美范文网- 精品教育范文网 All Rights Reserved

韩美范文网- 精品教育范文网 版权所有 湘ICP备11019447号-73