zoukankan      html  css  js  c++  java
  • Mysql DQL语言执行顺序

    Mysql DQL语言执行顺序:

    select 查询列表 ⑦
    from 表1 别名 ①
    连接类型 join 表2 ②
    on 连接条件 ③
    where 筛选 ④
    group by 分组列表 ⑤
    having 筛选 ⑥
    order by排序列表 ⑧
    limit 起始条目索引,条目数; ⑨

    1、from:首先对from子句中前两个表执行笛卡尔乘积,生成虚拟表1

    2、on:使用on筛选器,在虚拟表1中根据逻辑表达式筛选出满足条件的行行或多行,生成虚拟表2

    3、join:如果是join,则添加匹配的外部行;如果是left join就把左边第二步中未匹配的行添加进来,如果是right join就把右表在第二步中未匹配的行添加进来,生成虚拟表3.

    4、where:对虚拟表3执行where条件进行过滤,符合条件的生成虚拟表4

    5、group by:对虚拟表4进行分组操作生成虚拟表5

    6:having:在虚拟表5上继续执行having后的条件筛选,将满足条件的生成虚拟表6

    7:select:在虚拟表6上进行查询操作,生成虚拟表7

    8:order by:将虚拟表7按照order by后的条件进行排序升序或降序排列:desc,asc(默认asc降序)生成虚拟表8

    9:limit:在虚拟表8上取出指定的行的记录,生成虚拟表9,并返回

  • 相关阅读:
    循环移位算法
    关于Java中2.0-1.1!=0.9的问题
    Java基础语法(三)
    Java基础语法(二)
    Java基础语法(一)
    关于Java运行机制
    Java从零开始(前篇)
    关于.ssh目录下的known_hosts文件的补充
    解决 bash cd too many arguments 报错
    Markdown学习笔记(一)
  • 原文地址:https://www.cnblogs.com/zhoutie170821/p/12134271.html
Copyright © 2011-2022 走看看