完整的sql语句执行顺序
SELECT DISTINCT column1, column2, aggregate_function(column3)
FROM table1
JOIN table2 ON table1.column = table2.column
WHERE condition
GROUP BY column1, column2
HAVING group_condition
ORDER BY column1, column2
LIMIT offset, count;
FROM
子句
- 作用:该子句是 SQL 查询执行的起点,负责从指定的表或视图中获取原始数据。当涉及多个表时,它会根据 JOIN 条件对表进行连接操作,生成一个中间结果集。
JOIN
子句
- 作用:如果在
FROM
子句中使用了多个表,JOIN
子句会根据指定的连接条件将这些表组合在一起,进一步完善中间结果集。
WHERE
子句
- 作用:对
FROM
和 JOIN
操作生成的中间结果集进行过滤,只保留满足指定条件的行
GROUP BY
子句
- 作用:将经过
WHERE
过滤后的结果集按照指定的列进行分组,以便后续对每个组进行聚合操作。
HAVING
子句
- 作用:对
GROUP BY
分组后的结果集进行过滤,与 WHERE
不同的是,HAVING
可以使用聚合函数进行条件筛选。
SELECT
子句
- 作用:从前面处理得到的结果集中选择需要返回的列或表达式。可以使用列名、函数、常量等。
DISTINCT
关键字
- 作用:对
SELECT
子句返回的结果集进行去重处理,只保留唯一的行。
ORDER BY
子句
- 作用:对
SELECT
子句返回的结果集按照指定的列进行排序,可以是升序(ASC
)或降序(DESC
)。
LIMIT
子句