SQL练习题:单表查询、聚合函数、分组与嵌套查询

需积分: 10 9 下载量 56 浏览量 更新于2024-09-17 1 收藏 34KB DOC 举报
这篇资料主要包含了SQL语言的多个练习题,涵盖了单表查询、聚合函数、分组查询和嵌套查询等基本操作。这些题目旨在帮助学习者熟练掌握SQL语句的编写,提升数据库查询能力。 1. 单表查询练习: - 查询特定学生的信息,如"张三"或"张三"和"李四",可以通过`SELECT * FROM 学生信息表 WHERE 姓名 = '张三'`来实现。 - 查询姓氏为"张"或包含特定字符"四"的学生,可以使用`LIKE`操作符,如`WHERE 姓名 LIKE '张%'`或`WHERE 姓名 LIKE '%四%'`。 - 查询特定条件组合的学生,例如第5题,需要同时满足姓氏、长度和最后一个字符,可以用`AND`和`RIGHT()`函数,`WHERE 姓='李' AND LENGTH(姓名)=3 AND RIGHT(姓名,1)='强'`。 - 使用逻辑运算符`OR`和`AND`进行多条件查询,如第6题和第7题所示。 - 第10题的排序查询,可以使用`ORDER BY`语句,`ORDER BY 性别, 所属省份, 班级`。 - 第11题查询不同省份,需使用`DISTINCT`关键字,`SELECT DISTINCT 所属省份 FROM 学生信息表`。 2. 聚合函数练习: - 统计学生总数,用`COUNT(*)`,如`COUNT(*) FROM 学生信息表`。 - 统计满足条件的学生数量,如年龄大于20岁的,`COUNT(*) FROM 学生信息表 WHERE 年龄 > 20`。 - `BETWEEN`操作符用于统计特定区间的学生人数,`WHERE 入学时间 BETWEEN '1998-01-01' AND '2000-12-31'`。 - 对于平均成绩、总成绩和最高成绩的统计,可以使用`AVG()`、`SUM()`和`MAX()`函数。 3. 分组查询练习: - 统计每个课程的选修人数,`GROUP BY 课程号`,并可能用到`COUNT(*)`。 - 每个同学的总成绩,`GROUP BY 学号`,`SUM(成绩)`。 - 按班级和性别统计人数,`GROUP BY 班级, 性别`,可能还需要`COUNT(*)`。 - 计算每门课程的平均成绩并排序,`GROUP BY 课程号`, `AVG(成绩)`, `ORDER BY AVG(成绩) DESC`。 - 找出有两门以上不及格课程的学生,需要结合`GROUP BY`和`HAVING`。 4. 嵌套查询练习: - 子查询用于找出选修特定课程的学生总成绩,先查询课程,再计算总成绩。 - 统计选修信息表中,某个条件的学生情况,如不及格课程数,可能需要`COUNT()`和`HAVING`一起使用。 这些练习题覆盖了SQL的基础操作,通过实践可以加深对SQL语法的理解,提高数据处理效率。学习者应逐题解答,理解每个查询的逻辑和SQL语句的构造方法。