在 SQLite 中,一条完整的 SQL 查询语句的书写顺序是固定的。以下是一些关键字的完整语法结构:
📝 语法执行顺序(重要)
虽然书写顺序是上面的样子,但 SQLite 引擎在底层执行这些语句时,是有严格的先后顺序的。理解这个顺序对你学习 SQL 非常重要:(谐音:发文搞核算排列)
-
FROM:首先确定你要查询的是哪张表。 -
WHERE:对表中的原始数据进行第一波过滤(不支持聚合函数)。 -
GROUP BY:将过滤后的数据按照指定字段进行分组。 -
HAVING:对分组后的数据进行第二波过滤(通常配合聚合函数如SUM(),COUNT()使用)。 -
SELECT:从处理好的数据中提取出你需要的字段。 -
ORDER BY:对最终的结果集进行排序。 -
LIMIT:最后截取指定数量的行数返回。
💡 核心规则与避坑指南:
-
非必填项: 除了
SELECT和FROM是必须的,其他的子句(WHERE、GROUP BY等)都是可选的。 -
WHERE 与 HAVING 的区别:
WHERE是在分组前过滤原始行,而HAVING是在分组后过滤组。 -
LIMIT 的位置: 在 SQLite 中,
LIMIT必须放在整条语句的最后面。
有HAVING必须 有 GROUP BY,而有GROUP BY 不一定需要HAVING