SQL查询技巧:从基础到进阶
需积分: 0 109 浏览量
更新于2024-07-23
收藏 236KB DOC 举报
"SQL语句学习资源"
SQL(Structured Query Language,结构化查询语言)是用于管理关系数据库系统的核心语言。以下是一些基本的SQL查询示例:
1. 查询“001”课程比“002”课程成绩高的所有学生的学号:
这个查询通过子查询的方式比较了两个课程的成绩。首先,创建两个子查询,分别获取“001”和“002”课程的学生及其成绩。然后,通过外层查询比较这两个子查询的结果,找出在“001”课程中得分高于“002”课程的学生。
2. 查询平均成绩大于60分的同学的学号和平均成绩:
此查询使用`GROUP BY`和`HAVING`子句来按学生学号分组,并计算每个学生的平均成绩。`HAVING`子句在聚合函数之后过滤结果,只保留平均成绩大于60分的学生。
3. 查询所有同学的学号、姓名、选课数、总成绩:
这个查询使用`LEFT OUTER JOIN`来确保即使学生没有成绩记录,也能显示其基本信息。通过连接`Student`和`SC`表,可以获取每个学生的选课数量和总成绩,`GROUP BY`子句按学生学号和姓名分组。
4. 查询姓“李”的老师的个数:
该查询利用`LIKE`操作符和通配符‘%’来匹配以“李”开头的教师名字,然后使用`COUNT(DISTINCT Tname)`来计算不同姓“李”的教师数量。
5. 查询没学过“叶平”老师课的同学的学号、姓名:
此查询通过`NOT IN`子句找出没有出现在与“叶平”老师关联的课程记录中的学生。首先,子查询找出所有上过“叶平”老师课程的学生学号,然后主查询排除这些学号。
6. 查询学过“001”并且也学过编号“002”课程的同学的学号、姓名:
这个查询结合了`INNER JOIN`和`EXISTS`子句。首先,它找到所有学过“001”课程的学生,然后通过`EXISTS`子句检查这些学生中是否有学过“002”课程的记录。
7. 查询学过“叶平”老师所教的所有课的同学的学号、姓名:
这个查询使用`IN`子句来查找学过“叶平”老师所有课程的学生。首先,子查询获取“叶平”老师教授的所有课程编号,然后主查询找出那些课程记录中包含这些课程编号的学生。
以上是SQL基础查询技巧的实例,涵盖了子查询、联接、分组、过滤、聚合函数等多种操作,有助于初学者理解和掌握SQL查询的基本语法。通过实践和理解这些例子,可以进一步提高SQL查询能力。
2024-05-05 上传
2011-05-29 上传
2011-09-09 上传
2009-12-20 上传
2017-01-15 上传
因为差所以学
- 粉丝: 0
- 资源: 2
最新资源
- cpp_from_control_to_objects_8e:从C到对象,从控制结构开始,第8版
- import:R的导入机制
- vue2+vue-router+es6+webpack+node+mongodb的项目.zip
- Golang中的神经网络+培训框架-Golang开发
- 仅在页脚部分的最后一页的最底部打印表格页脚
- mac-config:Brewfile和脚本来设置全新的Mac安装
- writexl:轻巧的便携式数据帧,用于R的xlsx导出器
- Bootstrap模态登录框
- exif_read.rar_图形图像处理_Visual_C++_
- 福橘-股票行情-crx插件
- :magnifying_glass_tilted_right::bug:Golang fmt.Println调试和跟踪工具,能够可视化函数调用路径。-Golang开发
- 投资组合:我的个人投资组合以及由React提供的Dot Net服务器
- streamy-server
- voices:p5.js小实验
- New Tab Wallpaper-crx插件
- xml-website:监控项目的网站