SQL查询实战:解决32道经典Java实训题目
需积分: 9 69 浏览量
更新于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
最新资源
- MD5加密文档,包括原理及代码
- Rampant.TechPress.Oracle.SQL.Internals.Handbook
- ext中文手册整理版
- 电子商务大赛资料2-试题下面有
- java2实用教程(第3版例子代码).doc
- mapinfo开发的三种方法
- 技术资料下载\嵌入式软件编程的论文30篇\ERA2000成像测井地面仪器硬件的设计与实现.pdf
- Advanced_Python_programming
- Struts常见错误汇总.txt
- 酒店管理系统可行性分析
- VHDL基础教程学习
- max232 pdf
- emule 源码分析
- 基于J2EE的Ajax宝典
- eclipse中文使用文档
- 浅谈Java的输入输出流.pdf