内容发布更新时间 : 2024/12/25 9:14:41星期一 下面是文章的全部内容请认真阅读。
实验三 嵌套查询和统计查询实验
一、实验目的
要查询学生熟练掌握T-SQL语句进行数据查询,掌握SELECT语句的基本结构和子查询、统计函数的应用、分组查询、查询结果的排序等操作。
二、实验内容
(1) 利用SELECT语句进行子查询和外连接查询。
(2) 设计ORDER BY查询子句、带有GROUP BY的查询子句。
三、实验指导
1.嵌套查询
利用T-SQL语句在“JXGL”数据库中实现其嵌套查询操作: (l) 查询选修了“离散数学”的学生学号和姓名。
(2) 查询课程号为“C2”课程的成绩高于张林的学生学号和成绩。 (3) 查询其它系中年龄小于计算机科学系(CS)年龄最大者的学生。 (4) 查询其它系中比计算机科学系(CS)学生年龄都小的学生。
(5) 查询同“王洪敏”的“数据库原理及应用”课程分数相同的学生的学号。 (6) 查询选修了“C2”课程的学生姓名。 (7) 查询没有选修“C2”课程的学生姓名。 2.组合查询和统计查询
利用T-SQL语句在“JXGL”数据库中实现其数据组合查询和统计查询操作: (1) 查找选修“计算机基础”课程的学生成绩比此课程的平均成绩大的学生学号和成绩。 (2) 查询选修“计算机基础”课程的学生的平均成绩。 (3) 查询年龄大于女同学平均年龄的男同学姓名和年龄。 (4) 列出各系学生的总人数,并按人数进行降序排列。 (5) 统计各系各门课程的平均成绩。
(6) 查询选修“计算机基础”和“离散数学”的学生学号和平均成绩。
四、注意事项
(1) 查询结果的几种处理方式。
(2) 内连接、左外部连接和右外部连接的含义及表达方法。 (3) 输入SQL语句时应注意,语句中均使用西文操作符号。 (4) 相关子查询和不相关子查询的区别。
(5) 子句HAVING(条件)必须和GROUP BY(分组字段)子句配合使用。
五、思考题
·38·
(1) 用T-SQL语句查询时,如何提高数据查询和连接速度? (2) 对于常用的查询形式或查询结果,怎样处理较好? (3) 嵌套查询具有何种优势?
(4) 使用GROUP BY(分组条件)子句后,语句中的统计函数的运行结果有什么不同?
六、练习题
1.在学生管理数据库EDUC中,完成下列查询操作。 (1) 简单查询
① 查询选修了课程的学生学号。
② 查询选修“C1”课程的学生学号和成绩,并对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。
③ 查询选修课程“C1”且成绩在80-90之间的学生学号和成绩,并将成绩乘以系数0.75 输出。
④ 查询计算机科学系(CS)和数学系(MA)的姓张的老师信息。
⑤ 查询2013年8月15日上午8点在11#1605教师上课的教师编号和班级号。 ⑥ 查询所有男教授的教师信息。 (2) 连接查询操作
① 查询在11#1605教师上课的所有教师姓名、所在院系名和班级名称。
② 查询张明辉同学的姓名、性别、籍贯、年龄、所在班级班长姓名、所在院系领导的姓名。
③ 查询选修“C1”课程且成绩在90分以上的学生学号、姓名及成绩。
④ 查询“张靖海”老师的职称、年龄、所在院系名称、所担任的课程名称。 (3) 嵌套查询
① 查询选修了“高等数学”的学生学号和姓名;
② 查询选修了“张靖海”老师所任课程的所有学生的学号和姓名。
③ 查询在2013年第2学期在11#2108教室上课的全体教师的姓名及班级。 ④ 查询2013级学生所有任课教师的编号、姓名、职称、家庭住址。 2.在“TSGL”数据库中,查询下列信息: (1) 简单查询
① 查询读者表的所有信息。
② 查阅编号为”2013060328”的读者的借阅信息。
③ 查询图书表中“清华大学出版社”出版的图书书名和作者。 ④ 查询书名中包含“程序设计”的图书信息。
⑤ 查询图书表中“清华大学出版社”出版的图书信息,查询结果按图书单价升序排列。 ⑥ 查询成绩最高的前3名学生的学号、成绩。
⑦ 查询选修了“数据库原理及应用”课程成绩最差的3名学生的学号和成绩。 (2) 组合和统计查询
① 查询2004-1-1和2004-12-31之间各读者的借阅数量
② 查询2004-1-1和2004-12-31之间作者为“粱晓峰”的图书的借阅情况 ③ 查询借阅图书数目数超过3本的(包括3本)的学生学号及图书本数。 (3) 嵌套查询
① 查询定价大于所有图书平均定价的图书信息。
② 查询高等教育出版社出版的定价高于所有图书平均定价的图书信息。
·39·