数据库实验分析报告 ()
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验报告 (4)
————————————————————————————————作者:————————————————————————————————日期:
2
一实验题目
1.索引的建立和删除操作
2.视图的创建、修改、更新和查询操作
二实验目的
1.掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。
2.掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。
三实验内容
1.索引的建立和删除操作
(1)在S表中,建立按照sno升序的惟一性索引snoIDX。
(2)在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。
(3)在S表中,按照生日建立一个非聚簇索引birthdayIDX。
(4)在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。
(5)删除索引cnameIDX。
2.视图的创建、修改、更新和查询操作
(1)建立一个关于所有女生信息的视图S_GIRL。
(2)将各系学生人数,平均年龄定义为视图V_NUM_A VG
(3)建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。
(4)建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。
(5)在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。
(6)建立一个至少选修了4门课及4门课以上的学生信息的视图SC_FOUR。
(7)修改视图S_GIRL,要求只显示1997年以前出生的女生信息。
(8)在视图FAIL_GRADE查询不及格超过2门课的学生信息。
(9)删除视图S_GRADE。
(10)通过视图S_GIRL,将“王丹”的名字修改为“汪丹”,并查询结果。
(11)通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询
结果。
(12)通过视图S_GIRL,删除1995年出生的女生信息,并查询结果。
(13)通过视图S_GRADE,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。
(14)通过视图COMPUTE_A VG_GRADE,将“4121090301”学生的平均分改为90分,是否可以实
现,请说明原因。
四实验要求
1.要求掌握索引的类型,以及创建索引时的注意事项,例如每个表只能创建一个聚集索引,可以创建非聚集索引最多为249个,等等。
2.理解创建视图的目的和意义。掌握创建视图时需要考虑的原则:只能在当前数据库中创建视图、视图名不得与该用户的表名相同、可在视图上建立视图、定义视图不能包括ORDER BY等关键字、
不能建立临时视图,等等。
3. 报告中由同学写明具体的操作意图(文字描述)、操作命令(SQL 语句)、和执行结果(文字
描述+适当截图)。
4. 对于重要的运行界面和结果窗口,可以用Alt+PrintScreen 来截取当前窗口,并粘贴到实验报告中。
五 实验步骤:
1. 索引的建立和删除操作
2. 在S 表中,建立按照sno 升序的惟一性索引snoIDX 。 create unique index snoIDX on S(Sno asc); 运行结果:
结果显示如图1:
图表 1 建立索引snoIDX
3. 在SC 表中,建立按照学号升序和课程号降序的唯一性索引scIDX 。 代码:create index scIDX on SC(Sno asc,Cno desc); 运行结果:
结果显示如图2:
图表 2在SC 表建立索引scIDX 。
4. 在S 表中,按照生日建立一个非聚簇索引birthdayIDX 。
代码:create NONCLUSTERED index birthdayIDX on S(Sbirthday asc); 运行结果:
显示结果如图3所示
命令已成功
命令已成功
命令已成功
图表3建立索引birthdayIDX
5.在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。代码:create CLUSTERED index cnameIDX on C(Cno asc);
运行结果:
显示结果如图4:
图表4按照课程名升序的聚簇索引cnameIDX。
6.删除索引cnameIDX。
代码:drop index ameIDX
运行结果:
显示结果如图5,无索引,被删除:
图表 5
7.视图的创建、修改、更新和查询操作
命令已成功
命令已成功
8.建立一个关于所有女生信息的视图S_GIRL。
create view S_GIRL
as
select * from S where S.Ssex='女';
运行结果:
服务器: 消息 170,级别 15,状态 1,
删除“;”
代码:
create view S_GIRL
as
select * from S where Ssex='女'
运行结果:
命令已成功
查询显示结果: select * from S_GIRL
符合条件的结果如下图6所示:
图表 6
9.将各系学生人数,平均年龄定义为视图V_NUM_A VG
代码:create view V_NUM_A VG as select count(Sno) ,avg(Sage),Sdept
from S
group by Sdept
运行结果:
服务器: 消息 4511,级别 16,状态 1,过程
正确代码:
create view V_NUM_A VG as select count(Sno) DeptNum ,avg(Sage) Dept,Sdept
from S
group by Sdept
运行结果:
命令已成功
显示结果
select * from V_NUM_A VG
如图7所示DeptNum为各系学生人数,Dep为平均年龄