SQL查询实践:从单表到复杂操作

需积分: 9 15 下载量 125 浏览量 更新于2024-09-09 收藏 581KB DOC 举报
本次实验是关于SQL语言查询的操作,旨在让学生熟悉在查询分析器或企业管理器中使用SELECT语句进行不同类型的查询。实验涵盖了从基本的单表查询到复杂的多表查询,以及统计分析。 实验内容主要涉及以下知识点: 1. **基本查询**:查询所有学生的基本信息,这可以通过在S表中选择所有列(*)来实现,展示出所有学生的完整数据。 2. **条件查询**:查询特定条件下的数据,例如查询“计算机”系的学生,这里通过在S表的Sdept列设置条件等于'计算机'来筛选。 3. **模式匹配查询**:查询姓王的学生,使用LIKE操作符配合通配符%,如在Sname列设置条件为'王%',能找出所有名字以'王'开头的学生的学号、姓名和性别。 4. **范围查询**:结合条件和范围,查询“计算机”系年龄在19到21岁的学生,需在S表中选择Sno和Sname列,并设定Sage在19至21之间。 5. **连接查询**:查询王军老师讲授的课程,需要将教师表(可能为T表)与课程表(可能为C表)通过教师ID关联,筛选出教师名为'王军'的记录,展示课程号和课程名。 6. **联接查询**:查询选修了特定课程(如C0001)的学生学号和姓名,通过S表和SC表的联接,根据课程号相等条件进行匹配。 7. **子查询**:查询选修了课程名为“管理信息系统”的学生姓名,可能需要先在C表中找出该课程ID,再用这个ID在SC表中查询对应的学生信息。 8. **复合条件查询**:查询选修“管理信息系统”且成绩在80分以上的学生的学号、姓名和成绩,需同时满足课程名和分数条件。 9. **聚合函数**:查询学生的最大年龄,使用MAX函数针对S表的Sage列计算。 10. **分组与聚合**:找出“计算机”系学生的最大年龄,需按Sdept分组后再求MAX(Sage)。 11. **计数操作**:统计“计算机”系学生的人数,利用COUNT函数和GROUP BY子句按系别分组。 12. **排序与计数**:统计各系学生的人数并按升序排列,COUNT函数配合GROUP BY和ORDER BY子句。 13. **平均值计算**:按系别计算学生的平均年龄,用AVG函数并按降序排列。 14. **分组统计**:统计选修每门课程的学生人数及各门课程的平均成绩,需要同时使用COUNT和AVG函数,可能需要联接S表、SC表和C表。 15. **复杂条件统计**:查询选修了3门及以上课程的学生学号,可能需要用到HAVING子句,配合COUNT函数检查课程数量。 实验中使用到的SQL语句类型包括SELECT、FROM、WHERE、LIKE、AND、OR、GROUP BY、HAVING、ORDER BY、COUNT、MAX、AVG等,通过这些语句可以完成各种复杂的数据查询和分析任务。实验环境为Windows XP上的SQL Server 2000,操作工具为查询分析器或企业管理器。实验步骤包括在对应表格上选择列、设定条件、执行查询并查看结果。通过这些操作,学生可以深入理解SQL语言在实际数据库管理中的应用。