文档详情

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

发布:2018-10-21约2.59千字共8页下载文档
文本预览下载声明
WORD文档下载可编辑 专业技术资料分享 《数据库原理》实验报告 题目: 实验四:视图与索引 学号 姓名 班级 日期 2014302692 孟玉军16.10.18 实验内容、步骤以及结果 在Student数据库中,利用图形用户界面,创建一个选修了“数据库原理”课程并且是1996年出生的学生的视图,视图中包括学号,性别,成绩三个信息。(5分) 用两种不同的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 =三建) 用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 用SQL语句完成视图的数据更新。(15分,每题5分) 给视图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) 结果: 修改视图V_SPJ中的任意一条数据的供应数量。 update v_spj set qty=300 where sno=S1and pno=P1 修改前: 修改后: 删除视图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 用图形用户界面对Student数据库中C表的Cno字段创建一个降序排列的唯一索引,索引名称IX_CNo。(5分) 使用SQL语句对Student数据库完成以下的索引操作。(15分,每题5分) 在C表的CName属性上创建一个非唯一性的聚簇索引,索引名IX_CName。 (提示:创建这个聚簇索引之前,需要首先删除C表的主键约束。SQL Server中,给某张表指定主键时,会自动创建为主属性一个聚簇索引。) 先删除原主键: alter table C drop constraint pk_cno create clustered index IX_Cname on C (cname) 在SC表上创建一个名为IX_Cnosno的非聚簇复合索引,该索引是针对
显示全部
相似文档