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

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

大连海事大学

数据库原理课程实验报告(2013-2014学年第二学期)

实验四高级查询

班级:软件工程四班

学号:2220121787

姓名:马跃

指导教师:曹志英

成绩:

大连海事大学软件工程系

2014年6 月23 日

目录

1实验目的 (3)

2实验内容 (3)

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

3实验要求 (3)

4实验步骤 (3)

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

5总结与体会 (6)

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

5.2总结 (7)

5.3体会 (7)

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

(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’的学生信息。

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

from tb_student_info A

where graduateid in(

select graduateid

from tb_student_info D

where D.graduateid='1787')

(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='信息科学技术学院'

)

)

(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

))

相关文档
最新文档