数据库实验报告 (4)

  • 格式:doc
  • 大小:5.99 MB
  • 文档页数:19

下载文档原格式

  / 19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库实验报告 (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