SQL语句的编写顺序和执行顺序的区别

# SQL 99语法 编写顺序:

SELECT ...,...,....(存在聚合函数)

FROM ...JOIN...ON(多表的连接条件)

JOIN ...ON...

WHERE 多表的链接条件 AND 不包含聚合函数的过滤条件

GROUP BY ...,...

HAVING 包含聚合函数的过滤条件

ORDER BY ...,...(ASC/DESC)

LIMIT ...,...

#SQL语句 执行顺序  重要!※

FROM ...,...→ ON → (LEFT/RIGHT JOIN)

→ WHERE → GROUP BY → HAVING → SELECT

→ DISTINCT(去重) → ORDER BY → LIMIT

SQL语句的编写顺序和执行顺序的区别_第1张图片

 

知道编写顺序和执行顺序的区别,就可以理解为啥能用where就不用having ,因为能提前筛选好再分组效率会高很多

你可能感兴趣的:(SQL,sql,数据库,database)