数据库原理实验报告模板实验四高级查询分析.doc
文本预览下载声明
大连海事大学
数据库原理课程实验报告
(2013-2014学年第二学期)
实验四 高级查询
班 级: 网络工程2班
学 号: 2220133079
姓 名: 祁恩星
指导教师: 张德珍
成 绩:
大连海事大学网络工程系
2014年 5月27日
目 录
1 实验目的 3
2 实验内容 3
2.1 掌握SQL高级查询使用方法 3
3 实验要求 3
4 实验步骤 3
4.1 掌握SQL高级查询使用方法 3
5 总结与体会 4
5.1 实验中出现的问题及其解决方案 4
5.2 总结 4
5.3 体会 4
实验目的
掌握SQL的高级查询的使用方法,如分组统计、嵌套查询、集合查询等等。
实验内容
掌握SQL高级查询使用方法
分组统计。
嵌套查询,包括IN查询、EXISTS查询。
集合查询。
实验要求
深入复习教材第三章SQL有关高级查询语句。
根据书上的例子,针对DBTestBed数据库模式设计分组统计查询、嵌套查询(IN、EXISTS)语句和集合查询语句,每种类型的基本查询至少要设计一个查询,描述清楚查询要求,运行你所设计的查询语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。也可以按照附1所列示例查询做实验。
实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。
实验步骤
掌握SQL高级查询使用方法
不带分组过滤条件的分组统计查询。
带分组过滤条件的分组统计查询。
单层IN查询。
IN嵌套查询。
带有比较运算符的子查询
单层EXISTS嵌套查询。
双层EXISTS嵌套查询。
集合查询(交、并、差各设计一个)。
实验结果
见附录
总结与体会
在多个表建立关系时容易弄乱,在这个地方可以认真操作
在做查询:查询至少选修了学生“2220121764”选修的全部课程的学生号码时,开始没有意识到除了双层EXISTS嵌套查询还包含了自身连接的查询。在反复推敲后才意识到这一点并改正。
高级查询的基础是基本查询,所以在做高级查询前一定要弄懂基本查询。
附录:高级SQL查询
不带分组过滤条件的分组统计查询。
(1)统计每个学生选修课程的总学分。
(2)统计2013-2014学年第1学期信息学院开设的每门课程的最高分,最低分,及平均成绩。
(3)按学院统计2013-2014学年第2学期每个老师的上课情况(课程名称,选课人数等有关信息)。
带分组过滤条件的分组统计查询。
(1)查询选修了3门以上课程的学生学号,姓名,年级,专业名称(及导师姓名,可选)
(2)查询2013-2014学年第1学期任教2门以上课程的教师代码,姓名。
(3)按学院统计2013-2014学年第2学期每位老师所任教课程及其不及格学生的人数
单层IN查询。
(1)查询学号为’ 2220121764’,’ 2220121900’,’ 2220122080’的学生信息。
(2)查询学院代码为’01’,’02’,’03’ 2011级的学生信息。
(3)查询民族代码为’01’,’02’,’03’的学生信息。
查询教师职称代码为’011’,’012’的教师信息。
4.IN嵌套查询。
(1)查询学院名称为“航海学院”,“轮机工程学院”,“信息科学技术学院”2012级的学生信息。
(2)查询民族名称为’汉族’,’ 蒙古族’,’回族’的学生信息。
(3)查询职称为’教授’,’副教授’的教师信息。
5.带有比较运算符的子查询
(1)查询指导教师为“张德珍”的所有学生信息。
查询2013-2014学年第2学期选修“数据库原理”课程的所有学生信息。
6.单层EXISTS嵌套查询。
(1)查询所有选修培养方案号(SchemeID)为3的学生姓名。
(2)查询没有选修培养方案号(SchemeID)为3的学生姓名。
7.双层EXISTS嵌套查询。
(1)查询选修了全部课程的学生姓名。
(2)查询至少选修了学生“2220121764”选修的全部课程的学生号码。
8.集合查询(交、并、差各设计一个)。
(1)查询学生“陈海鸥”和“周文蘂”都选的课程信息。
(2)查询学生“陈海鸥”和“周文蘂”选的全部课程信息。
(3)查询学生“陈海鸥”选修过,而“周文蘂”没选修过的课程信息。
(4)查询“张德珍”老师和“刘宁宁”老师都授过课的学生信息。
显示全部