SQL 查询语句

查询语句模版

SELECT DISTINCT column, AGG_FUNC(column_or_expression), 
FROM mytable
    JOIN another_table
    ON mytable.column = another_table.column
WHERE constraint_expression
GROUP BY column
HAVING constraint_expression
ORDER BY column ASC/DESC
LIMIT count OFFSET COUNT;

使用时的顺序

子句 说明 是否必须使用
SELECT 要返回的列或表达式
FROM 从中检索数据的表 仅在从表中选择数据时使用
WHERE 行级过滤
GROUP BY 分组说明 仅在按组计算聚集时使用
HAVING 组级过滤
ORDER BY 输出排序顺序
LIMIT 要检索的行数

执行时的顺序

关键字
FROM、JOIN 和 ON
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
ORDER BY
LIMIT 和 OFFSET

注:实际的执行顺序未必是这样,因为数据库引擎会进行优化。

参考

Order of execution of a Query

SQL queries don’t start with SELECT

Updated: