SQL查询语句的执行顺序

SELECT语句定义

  • select->from->where->group by->having->order by->limit
  • SELECT DISTINCT <select_list> FROM <left_table>
    <join_type> JOIN <right_table> ON <join_condition>
    WHERE <where_condition>
    GROUP BY <group_by_list>
    HAVING <having_condition>
    ORDER BY <order_by_list>
    LIMIT <offset,rows>

SELECT语句执行顺序

SELECT语句中子句的执行顺序与SELECT语句中子句的输入顺序是不一样的,所以并不是从SELECT子句开始执行的,而是按照下面的顺序执行:

  • 开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->SELECT子句->ORDER BY子句->LIMIT子句->最终结果

MySQL的having语句

having与where的区别

  • 1.where:
    • 是作用在查询结果进行分组之前,过滤掉不符合条件的数据。
    • where中不能包含聚合函数。(注意是:where后面子句不能有聚合函数,而在含有where中可以使用聚合函数)
    • 作用在group by和having字句前
    • 是作用于对表与视图
  • 2.having:
    • 是作用在查询结果分组之后,筛选满足条件的组,过滤掉数据。
    • 通常跟聚合函数一起使用。
    • having子句在聚合后对组记录进行筛选。
    • 是作用于分组

转载:https://blog.csdn.net/songjianlong/article/details/133915449

posted @ 2022-12-05 14:59  xunm  阅读(140)  评论(0)    收藏  举报