SQL查询语句的执行顺序
SELECT语句定义
- select->from->where->group by->having->order by->limit
- SELECT DISTINCT <select_list> FROM <left_table>
<join_type> JOIN <right_table> ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
ORDER BY <order_by_list>
LIMIT <offset,rows>
SELECT语句执行顺序
SELECT语句中子句的执行顺序与SELECT语句中子句的输入顺序是不一样的,所以并不是从SELECT子句开始执行的,而是按照下面的顺序执行:
- 开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->SELECT子句->ORDER BY子句->LIMIT子句->最终结果
MySQL的having语句
having与where的区别
- 1.where:
- 是作用在查询结果进行分组之前,过滤掉不符合条件的数据。
- where中不能包含聚合函数。(注意是:where后面子句不能有聚合函数,而在含有where中可以使用聚合函数)
- 作用在group by和having字句前
- 是作用于对表与视图
- 2.having:
- 是作用在查询结果分组之后,筛选满足条件的组,过滤掉数据。
- 通常跟聚合函数一起使用。
- having子句在聚合后对组记录进行筛选。
- 是作用于分组
转载:https://blog.csdn.net/songjianlong/article/details/133915449
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南