SQL查询实战:解决32道经典Java实训题目
需积分: 9 192 浏览量
更新于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语法,还能提升数据处理和分析能力。
2013-06-23 上传
2008-12-19 上传
2023-05-12 上传
2021-10-20 上传
2012-01-03 上传
2010-09-09 上传
2014-06-30 上传
2010-05-11 上传
2011-11-29 上传
abcd12045
- 粉丝: 2
- 资源: 4
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目