您好,欢迎来到九壹网。
搜索
您的当前位置:首页数据库原理实验报告模板-实验四高级查询

数据库原理实验报告模板-实验四高级查询

来源:九壹网


选课序号:25

大连海事大学 数据库原理课程实验报告

(2013-2014学年第二学期)

实验四 高级查询

班 级: 软件工程四班 学 号: 2220121787 姓 名: 马跃 指导教师: 曹 志 英

成 绩:

大连海事大学软件工程系 2014年 6 月 23 日

1

目 录

1 实验目的............................................................................................... 3 2 实验内容............................................................................................... 3

2.1

掌握SQL高级查询使用方法 ..................................................................................... 3

3 实验要求............................................................................................... 3 4 实验步骤............................................................................................... 3

4.1

掌握SQL高级查询使用方法 ..................................................................................... 3

5 总结与体会........................................................................................... 6

5.1

5.2 5.3

实验中出现的问题及其解决方案 ............................................................................... 6 总结 ............................................................................................................................... 7 体会 ............................................................................................................................... 7

2

1 实验目的

(1) 掌握SQL的高级查询的使用方法,如分组统计、嵌套查询、集合查询等等。

2 实验内容

2.1 掌握SQL高级查询使用方法

(1) 分组统计。

(2) 嵌套查询,包括IN查询、EXISTS查询。 (3) 集合查询。

3 实验要求

(1) 深入复习教材第三章SQL有关高级查询语句。

(2) 根据书上的例子,针对DBTestBed数据库模式设计分组统计查询、嵌套查询(IN、

EXISTS)语句和集合查询语句,每种类型的基本查询至少要设计一个查询,描述清楚查询要求,运行你所设计的查询语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例查询做实验。

(3) 实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。

4 实验步骤

4.1 掌握SQL高级查询使用方法

(1) 不带分组过滤条件的分组统计查询。

统计2013-2014上学期信息学院(01)开设的每门课程的最高分,最低分,及平均成绩。

select C.coursename,avg(score) AVGS,max(score) MAXS,min(score) MINS from tb_select_course A,Tb_Cultivate_Scheme B,Tb_Course_info C where A.schemeid=B.schemeid and B.cyear='2013' and B.term='上' and C.courseid=B.courseid and C.deptid='01' group by C.coursename

3

(2) 带分组过滤条件的分组统计查询。

查询选修了1门以上课程的学生学号,姓名,年级,专业名称

select A.graduateid,graduatename,grade,specialityname

from tb_student_info A,tb_speciality_info B,tb_select_course C where A.specialityid=B.specialityid and C.graduateid=A.graduateid group by A.graduateid,A.graduatename,grade,specialityname having count(A.graduateid)>1

(3) 单层IN查

查询学号为’1787’的学生信息。

from tb_student_info A where graduateid in( select graduateid from tb_student_info D where D.graduateid='1787')

select A.graduateid,graduatename,sex,city,email,tel,birthday

(4) IN嵌套查询。

查询“信息科学技术学院”学生姓名和学号和家庭地址。

select graduateid,graduatename,city from tb_student_info where specialityid in (select specialityid from tb_speciality_info where deptid in (select deptid

from tb_dept_info

where deptname='信息科学技术学院' )

)

4

(5) 带有比较运算符的子查询

查询指导教师为“曹志英”的所有学生学号姓名和电话。

select graduateid,graduatename,tel from tb_student_info where tutorid=

(select tutorid from tb_tutor_info where tutorname='曹志英'

)

(6) 单层EXISTS嵌套查询。

所有选修培养方案号(SchemeID)为3的学生姓名

select graduatename from tb_student_info A where exists

(select *

from tb_select_course B

where B.schemeid='01' and A.graduateid=B.graduateid )

(7) 双层EXISTS嵌套查询。

查询选修了全部课程的学生姓名

select graduatename from tb_student_info A where not exists

(select *

from tb_course_info B,tb_cultivate_scheme D

where B.courseid=D.courseid and not exists (select *

from tb_select_course C

where graduateid=A.graduateid and

schemeid=D.schemeid

))

5

(8) 集合查询(交、并、差各设计一个)。

查询“曹志英”老师和“宗雪飘”老师都授过课的学生姓名学号。

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='01' union

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='02'

查询“曹志英”老师和“宗雪飘”老师授过课的所有学生姓名学号。

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='01' intersect

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='02'

查询选修过“曹志英”老师的课程,却没有听过“宗雪飘”课程的学生姓名学号。

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='01' except

select graduatename,A.graduateid

from tb_student_info A,tb_select_course B

where A.graduateid=B.graduateid and B.teacher='02'

5 总结与体会

5.1 实验中出现的问题及其解决方案

在group by查询学号姓名时没有将,没有将姓名放在group by语句中,结果出现查询不正确,最后请教老师,在group by分组时应将查询的内容都包含。

6

5.2 总结

感觉这个实验相对于上几个实验比较难,尤其是双层EXISTS嵌套查询,自己的理解还不是很到位,但是慢慢参考书上的例子,将代码写了出来。

5.3 体会

感觉自己自己学习的数据库还不是很踏实,还应该继续努力脚踏实地,不要急于求成,自己不会时应该多向同学老师请教。

7

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务