SQL实例大全:50个关键查询解决数据连接与筛选
5星 · 超过95%的资源 需积分: 10 183 浏览量
更新于2024-07-24
1
收藏 72KB DOC 举报
在数据库学习过程中,掌握SQL语言是至关重要的,特别是对于初学者来说。这里列举了50个实用的SQL语句实例,涵盖了从基础查询到复杂联接操作,旨在帮助你理解和运用SQL进行数据处理。以下是一些关键知识点的详细解析:
1. **比较课程成绩**: 这个例子展示了如何通过子查询对比两个课程(如“001”和“002”)的成绩,找出“001”课程成绩高于“002”的所有学生的学号。通过`left outer join`连接SC表,并使用`where`子句进行条件筛选,实现了成绩的比较。
2. **计算平均成绩及过滤**: 查询学生成绩的平均值,如果平均成绩大于60分,则返回对应学生的学号和平均成绩。这里使用了`GROUP BY`对学号进行分组,并用`HAVING`子句筛选出满足条件的记录。
3. **统计学生信息**: 通过`left outer join`将学生表(Student)、成绩表(SC)联接,计算每个学生的选课数量(通过`count`函数)和总成绩(通过`sum`函数),并按学号和姓名进行分组。
4. **计数特定姓氏的教师**: 这个查询用来统计姓“李”的教师数量,使用`LIKE`运算符和通配符`%`来匹配以“李”开头的字符串。
5. **查找未选修特定教师课程的学生**: 使用`not in`操作符结合子查询,找出没有选修过叶平老师课程的学生的学号和姓名。联接多个表(SC、Course、Teacher)以确定学生是否上过某门课。
6. **查找同时选修两门课程的学生**: 通过`exists`子句,找出同时选修了“001”和“002”课程的学生的学号和姓名。这需要用到嵌套的`SELECT`语句来检查是否存在关联。
7. **查询特定教师的所有授课学生**: 最后一个例子是找出学过叶平老师所有课程的学生的学号和姓名。这个查询涉及多个表之间的联接,并且可能需要使用递归查询或者自连接(self-join)来获取所有相关课程的信息。
这些SQL语句不仅涵盖了许多基本的查询类型,还展示了联接(JOIN)、聚合函数(如`COUNT`, `AVG`, `SUM`)、子查询(subquery)以及条件筛选等高级特性。通过练习这些例子,初学者可以逐渐提高SQL技能,对数据库管理和数据分析有更深入的理解。
2024-03-16 上传
2010-01-31 上传
杨应安
- 粉丝: 0
- 资源: 3
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器