数据库实验报告 (4)
- 格式:doc
- 大小:5.99 MB
- 文档页数:19
数据库实验报告 (4)
一实验题目
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)将各系学生人数,平均年龄定义为视图
(6)
图表2在SC表建立索引scIDX。
1.在S表中,按照生日建立一个非聚簇索引birthdayIDX。
代码:create NONCLUSTERED index birthdayIDX on S(Sbirthday asc);
运行结果:
命令已成功
显示结果如图3所示
2.在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。
代码:create CLUSTERED index cnameIDX on C(Cno asc);
运行结果:
命令已成功
显示结果如图4:
图表4按照课程名升序的聚簇索引cnameIDX。
3.删除索引cnameIDX。
代码:drop index ameIDX
运行结果:
命令已成功
显示结果如图5,无索引,被删除:
图表 5
4.视图的创建、修改、更新和查询操作
5.建立一个关于所有女生信息的视图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
6.将各系学生人数,平均年龄定义为视图V_NUM_A VG
代码:create view V_NUM_A VG as select count(Sno) ,avg(Sage),Sdept
from S
group by Sdept
运行结果:
正确代码:
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为平均年龄
图表7
7.建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。
代码:create view TOTAL_CREDIT as select Sno, sum(Ccredit) as total_credit
from SC join C on o=o
group by Sno
运行结果:
命令已成功
显示结果如图8所示TOTAL_CREDIT为学生所选课程的总学分情况:
图表8
8.建立一个所有学生课程成绩的视图S_GRADE,包
括基本学生信息,课程信息和成绩。
create view S_GRADE as select
S.Sno,S.Sname,ame,redit,SC.Grade
from SC ,C,S
where S.Sno=SC.Sno and o=o
运行结果:
命令已成功
显示结果:
select * from S_GRADE
结果如图9所示:基本信息,课程信息和成绩
图表9
9.在视图S_GRADE基础之上,建立一个两门课以上
成绩不及格的学生情况视图FAIL_GRADE。
代码:create view FAIL_GRADE
as
select Sno,count(*)SnoNum from S_GRADE
where Grade<60
group by Sno having count(*)>=2
运行结果:
命令已成功
查询视图符合条件的结果:select * from FAIL_GRADE
如下图所示,没有符合选修两门且不及格的学生信息
图表10
10.建立一个至少选修了2门课及2门课以上的学生
信息的视图SC_FOUR。
代码:create view SC_FOUR
as
select Sno,count(*)CnoNum from SC
group by Sno having count(*)>=2
运行结果:
命令已成功
查询视图符合条件的结果:select * from SC_FOUR 显示结果如下图11:学号为0001得学生选修3门,0002学生和0003学生选修了3门;
图表11