美文网首页
SQL逻辑查询语句执行顺序

SQL逻辑查询语句执行顺序

作者: 简书_捡书 | 来源:发表于2016-08-26 11:55 被阅读0次

    tab_1

    tab_1.png

    tab_2

    tab_2.png

    代码执行顺序

    (7) SELECT 
    (8) DISTINCT <select_list>
    (1) FROM <left_table>
    (3) <join_type> JOIN <right_table>
    (2) ON <join_condition>
    (4) WHERE <where_condition>
    (5) GROUP BY <group_by_list>
    (6) HAVING <having_condition>
    (9) ORDER BY <order_by_condition>
    (10) LIMIT <limit_number>
    

    执行FROM 形成笛卡尔积

    VT_1.png

    执行ON过滤

    VT_2.png

    添加外部行

    LEFT OUTER JOIN
    把左表记为保留表,得到的结果为(也就是我们查询得到的结果 VT_3):


    Left Join(VT_3).png

    把右表记为保留表,得到的结果为:


    Right Join.png

    FULL OUTER JOIN
    把左右表都作为保留表,得到的结果为:


    Full Join.png

    执行WHERE过滤

    VT_4.png

    执行GROUP BY分组

    VT_5.png

    执行HAVING过滤

    VT_6.png

    SELECT查找

    VT_7.png

    执行DISTINCT子句

    创建一张内存临时表,当内存不够的时候,就需要存入硬盘
    这张表会比原先的虚表多一个唯一的索引,以此来去除重复的数据
    

    执行ORDER BY子句

    VT_8.png

    执行LIMIT子句

    VT_9.png

    相关文章

      网友评论

          本文标题:SQL逻辑查询语句执行顺序

          本文链接:https://www.haomeiwen.com/subject/bntzsttx.html