SQL查询技巧:学生、课程与教师数据操作
需积分: 9 107 浏览量
更新于2024-07-27
收藏 1.09MB PDF 举报
"该PDF文件包含了SQL查询的经典实例,涉及了多个关于学生、课程、教师和成绩的数据表操作。"
在SQL中,我们通常使用不同的查询来获取、分析和操作数据库中的数据。以下是对给定文件中各问题的详细解释:
1. 查询“001”课程比“002”课程成绩高的所有学生的学号:
这个查询通过子查询分别获取两门课程的成绩,然后比较并找出分数更高的学生。
2. 查询平均成绩大于60分的同学的学号和平均成绩:
使用`GROUP BY`和`HAVING`子句按学号分组,并计算每个学生的平均成绩,筛选出平均分大于60的学生。
3. 查询所有同学的学号、姓名、选课数、总成绩:
此查询使用左连接将学生表与成绩表连接,通过`GROUP BY`计算每个学生的选课数量和总成绩。
4. 查询姓“李”的老师的个数:
利用`LIKE`操作符匹配姓“李”的老师,`DISTINCT`确保计数不重复。
5. 查询没学过“叶平”老师课的同学的学号、姓名:
使用`NOT IN`子句排除学过“叶平”老师课程的学生。
6. 查询学过“001”并且也学过编号“002”课程的同学的学号、姓名:
结合`INNER JOIN`和`EXISTS`子句,找出既学过“001”又学过“002”的学生。
7. 查询学过“叶平”老师所教的所有课的同学的学号、姓名:
通过`IN`子句匹配叶平老师教的所有课程,并使用`HAVING`检查学生是否学过所有课程。
8. 查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名:
使用子查询来比较两个课程的分数。
9. 查询所有课程成绩小于60分的同学的学号、姓名:
使用`NOT IN`子句排除所有课程分数大于60的学生。
10. 查询没有学全所有课的同学的学号、姓名:
通过`HAVING`子句检查学生选修的课程数量是否少于所有课程的数量。
11. 查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名:
使用`IN`子句匹配至少有一门相同课程的学生。
12. 查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名:
找出至少学过“001”同学所有一门课程的其他学生。
13. 把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩:
使用`UPDATE`语句配合子查询,更新叶平老师所教课程的平均分。
14. 删除学习“叶平”老师课的SC表记录:
`DELETE`语句与子查询结合,移除叶平老师课程的相关记录。
15. 向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号,号课的平均成绩:
`INSERT INTO`语句结合子查询,为未上过“003”课程的学生插入新记录。
16. 按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩:
多列子查询用于显示指定课程的成绩,`GROUP BY`和`AVG`计算平均分,`ORDER BY`进行排序。
17. 查询各科成绩最高和最低的分:
通过自连接和子查询找出每门课程的最高分和最低分。
这些例子展示了SQL在处理关系型数据库时的强大功能,包括聚合函数(如`COUNT`, `AVG`, `MAX`, `MIN`)、连接操作(如`JOIN`, `LEFT JOIN`, `INNER JOIN`)、子查询以及条件过滤(如`WHERE`, `HAVING`, `IN`, `NOT IN`, `LIKE`)。理解并熟练运用这些技术对于SQL查询和数据管理至关重要。
2012-09-09 上传
2024-07-27 上传
2022-02-17 上传
2022-02-17 上传
2022-02-17 上传
2022-02-17 上传
2022-02-17 上传
jilongliang
- 粉丝: 40
- 资源: 94
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析