SQL执行顺序
手写顺序
我们可以将手写SQL时遵循的格式归结如下:
123456789101112131415 | select distinct |
---|---|
distinct
,用于对查询出的结果集去重(若查出各列值相同的多条结果则只算一条)join
,关联表查询,若将两个表看成两个集合,则能有7种不同的查询效果(将在下节介绍)。group by
,通常与合计函数结合使用,将结果集按一个或多个列值分组后再合计having
,通常与合计函数结合使用,弥补where
条件中无法使用函数order by
,按某个标准排序,结合asc/desc
实现升序降序limit
,如果跟一个整数n
则表示返回前n
条结果;如果跟两个整数m,n
则表示返回第m
条结果之后的n
条结果(不包括第m
条结果)MySQL引擎解析顺序
而我们将SQL语句发给MySQL服务时,其解析执行的顺序一般是下面这样:
123456789101112131415161718 | from |
---|---|
了解这个对于后续分析SQL执行计划提供依据。
————————————————