SQL练习题:单表查询、聚合函数、分组与嵌套查询
需积分: 10 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语句的构造方法。
2020-01-04 上传
2023-10-20 上传
2023-07-21 上传
2023-06-11 上传
2023-09-13 上传
2023-07-25 上传
2024-03-02 上传
lonelyscud
- 粉丝: 4
- 资源: 1
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析