文档库 最新最全的文档下载
当前位置:文档库 › 数据库理论与技术实验报告四

数据库理论与技术实验报告四

宁波工程学院

数据库理论与技术课程实验报告

学院:电子与信息工程学院专业:计算机科学与技术年级:计科13-2 实验时间: 2015.4.27 学号: 134******** 姓名:

指导教师签字:成绩:

实验四、视图、存储过程实验

一、实验目的和要求

1、实验目的:理解视图的概念和相关命令,并掌握视图相关的SQL语句;理解存储过程

的概念和相关命令,并掌握存储过程相关的SQL语句。

2、实验要求:掌握视图存储过程的使用

二、实验内容与步骤

1、利用数据库jxgl完成实现下列查询的视图。(在SQL SERVER2005上附加数据库jxgl),

并运行该视图。

(1)创建视图,实现查询03物流1班学生的详细信息

(2)创建视图,实现查询“入学成绩”在350到400分之间的学生的姓名和班级

(3)创建视图,实现查询students表中现有的班级

(4)创建视图,实现查询具有“教授”或“副教授”职称的教师的教师编号和姓名

(5)创建视图,实现查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩。

(6)创建视图,实现查询课程名称中包含“DB_”的课程的信息

(7)创建视图,实现查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号

(8)创建视图,实现查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的

学生按出生日期降序排列

CREAT VIEW studentinfo

SELECT TOP (100) PERCENT sno, sname, dept, sex, birthday, jiguan, tel

FROM dbo.student

ORDER BY dept, birthday DESC

(9)创建存储过程,实现统计03物流1班学生“入学成绩”的平均分、最高分、最低分

create procedure tongji

as select avg(grade)as平均成绩,max(grade)as最高分,min(grade)as最低分

from student_course

EXECute tongji

(10)创建存储过程,实现统计各个班级的学生人数,按统计结果做降序排列

(11)创建存储过程,实现统计各部门教师的人数,筛选出教师人数在指定人数(参数)以上的部门

(12)创建存储过程,实现查询平均分在指定分数(参数)以上的课程编号

2、将上述查询以存储过程实现,并在后面写出运行该存储过程的语句。

注意:在实验报告中说明查询的目的和对应的语句。

三、实验过程及数据记录

1、利用数据库jxgl完成实现下列查询的视图。(在SQL SERVER2005上附加数据库jxgl),并运行该视图。

(1)创建视图,实现查询03物流1班学生的详细信息

CREATE VIEW V1

AS SELECT*

FROM student

WHERE bname='03物流'

GO

SELECT*

FROM V1

(2)创建视图,实现查询“入学成绩”在350到400分之间的学生的姓名和班级

create view v2

as select sname,bname

from student

where mgrade between 350 and 400

select*

from v2

(3)创建视图,实现查询students表中现有的班级

create view v3

as select distinct bname

from student

go

select*

from v3

(4)创建视图,实现查询具有“教授”或“副教授”职称的教师的教师编号和姓名

create view v4

as select tno,tname

from teacher

where professional='副教授'or professional='教授'

go

select*

from v4

(5)创建视图,实现查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩。create view v5

as select sname,birthday,mgrade

from student

where sname like'陈%'and bplace='宁波'

go

select*//查询视图v5

from v5

(6)创建视图,实现查询课程名称中包含“DB_”的课程的信息create view v7

as select*

from course

where cname like'DB_%'

go

select*

from v7

(7)创建视图,实现查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号create view v8

as select*

from teacher_course

where tno is NULL

go

select*

from v8

(10)创建存储过程,实现统计各个班级的学生人数,按统计结果做降序排列

create procedure p11

as select bname,count(*) number

from student

group by bname

order by number DESC

execute p11

(11)创建存储过程,实现统计各部门教师的人数,筛选出教师人数在指定人数(参数)以上的部门

create procedure p12

as select dept,count(*) number

from teacher

group by dept

having(count(*)>5)

execute p12

(12)创建存储过程,实现查询平均分在指定分数(参数)以上的课程编号

create procedure p13

as select student_https://www.wendangku.net/doc/c515330112.html,o ,avg(student_course.grade)

from student,student_course

where student_course.sno=student.sno

group by student_https://www.wendangku.net/doc/c515330112.html,o

having(avg(student_course.grade)>85)

execute p13

四、实验结果分析

通过实验,初步理解了视图的概念和相关命令,掌握视图相关的SQL语句,并能够熟练的使用,对理解存储过程的概念和相关命令也有所掌握。在实验过程中对有些存储过程还不是很熟练,还需要多去实验和学习。

相关文档