SQL查询实战:解决32道经典Java实训题目
需积分: 9 184 浏览量
更新于2024-09-08
收藏 18KB DOCX 举报
在本篇文档中,提供了多个关于Java实训中的MySQL语句练习题,主要针对数据库操作和查询技巧进行深入学习。以下是针对几个关键知识点的详细解析:
1. 删除特定学生特定课程成绩:
该SQL命令 `DELETE FROM tb_sc WHERE sid = '002' AND cid = '001';` 是用来从成绩表(tb_sc)中删除学号为002的学生在课程编号为001的记录。这是对SQL基础操作——删除数据的一个实例,展示了如何根据特定条件删除数据。
2. 检索不及格分数并排序:
查询 `SELECT sid FROM tb_sc WHERE cid = '004' AND score < 60 ORDER BY score DESC;` 用于查找课程ID为004且分数低于60的学生学号,并按分数从高到低排序。这涉及到查询、条件过滤和排序功能。
3. 计算不及格门数与平均成绩:
`SELECT sid, SUM(score < 60) AS 挂科门数, AVG(score) AS 平均分 FROM tb_sc GROUP BY sid HAVING 挂科门数 >= 2;` 此查询统计每个学生的挂科门数以及平均成绩,仅返回选修课程中有两门或更多不及格的学生信息。
4. 查询未选修特定老师课程的学生:
这个查询通过子查询排除了张三老师授课的所有课程,然后筛选出 `SELECT sname FROM tb_student WHERE sid IN ...` 的学生姓名。这展示了如何使用NOT IN和多表联接来完成复杂的条件筛选。
5. 检索至少选修两门课程的学生学号:
`SELECT sid FROM tb_sc GROUP BY cid HAVING cid >= 2;` 通过GROUP BY和HAVING子句,找出选修课程数量超过一门的学生学号。
6. 统计选修人数并按条件排序:
`SELECT cid, COUNT(cid) AS 选修课程人数 FROM tb_sc GROUP BY cid HAVING 选修课程人数 >= 10 ORDER BY 选修课程人数 DESC, cid ASC;` 此查询计算每门课程的选修人数,只显示选修人数超过10的学生,结果按照人数降序和课程号升序排列。
7. 查询每门课成绩最好的前两名:
最后一个查询没有提供完整的SQL,但可以推断出其目的是获取每门课程的最高分学生,可能需要结合子查询和窗口函数(如RANK或ROW_NUMBER)来实现。这个部分体现了高级SQL查询技术,特别是处理排名和竞赛型结果的能力。
这些题目涵盖了MySQL基础操作(如增删改查)以及更复杂的查询策略,包括联接多个表、聚合函数、排序和分组等,有助于巩固Java开发人员在实际项目中的SQL查询技能。通过解答这些问题,学员不仅可以掌握MySQL语法,还能提升数据处理和分析能力。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-05-12 上传
2013-06-23 上传
2021-10-20 上传
2012-01-03 上传
2010-09-09 上传
2014-06-30 上传
abcd12045
- 粉丝: 2
- 资源: 4
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录