好的,以下是详细的SQL执行顺序的详解,并整理成文档格式:


SQL执行顺序详解

SQL 关键字执行顺序

FROM -> JOIN/ON -> WHERE -> GROUP BY -> HAVING

-> SELECT -> DISTINCT -> ORDER BY -> LIMIT -> OFFSET

-> UNION -> INSERT INTO / UPDATE / DELETE FROM

FROM 子句

  • 作用:指定查询的数据源表或视图。
  • 语法FROM table_name

JOIN 子句

  • 作用:将多个表连接起来,根据指定的条件。
  • 语法
    1
    JOIN table_name ON join_condition
    • JOIN 关键字用于连接表。
    • ON 关键字用于指定连接条件。

WHERE 子句

  • 作用:筛选符合条件的行。
  • 语法
    1
    WHERE condition

GROUP BY 子句

  • 作用:按照指定的列对结果集进行分组。
  • 语法
    1
    GROUP BY column_name

HAVING 子句

  • 作用:对 GROUP BY 子句分组后的结果进行筛选。
  • 语法
    1
    HAVING condition

SELECT 子句

  • 作用:选择要查询的列或表达式。
  • 语法
    1
    SELECT column1, column2, ...

DISTINCT 关键字

  • 作用:从结果集中删除重复的行。
  • 语法
    1
    SELECT DISTINCT column1, column2, ...

ORDER BY 子句

  • 作用:对结果集按照指定列进行排序。
  • 语法
    1
    ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...

LIMIT 子句

  • 作用:限制返回的行数。
  • 语法
    1
    LIMIT number

OFFSET 子句(可选)

  • 作用:指定返回结果的偏移量。
  • 语法
    1
    OFFSET offset_value

UNION 子句(可选)

  • 作用:合并两个或多个 SELECT 语句的结果集。
  • 语法
    1
    2
    3
    SELECT column1, column2, ...
    UNION
    SELECT column1, column2, ...

INSERT INTO 子句

  • 作用:向表中插入新的行。
  • 语法
    1
    INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)

UPDATE 子句

  • 作用:更新表中现有的行。
  • 语法
    1
    UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition

DELETE FROM 子句

  • 作用:删除表中的行。
  • 语法
    1
    DELETE FROM table_name WHERE condition

执行顺序总结

SQL 查询的执行顺序通常为:

FROM -> JOIN/ON -> WHERE -> GROUP BY -> HAVING

-> SELECT -> DISTINCT -> ORDER BY -> LIMIT -> OFFSET

-> UNION -> INSERT INTO / UPDATE / DELETE FROM