MySQL中一条SELECT语句是如何执行的

叁歲伎倆 2022-03-02 13:54 392阅读 0赞

查询操作是关系数据库中使用最为频繁的操作,也是构成其他SQL语句(如DELETE、UPDATE)的基础。

SELECT语法如下
  1. (5)SELECT DISTINCT <select_list>
  2. (1)FROM <left_table> <join_type> JOIN <right_table> ON <on_predicate>
  3. (2)WHERE <where_predicate>
  4. (3)GROUP BY <group_by_specification>
  5. (4)HAVING <having_predicate>
  6. (6)ORDER BY <order_by_list>
  7. (7)LIMIT n, m
SELECT语句的处理过程
  • FROM阶段
  • WHERE阶段
  • GROUP BY阶段
  • HAVING阶段
  • SELECT阶段
  • ORDER BY阶段
  • LIMIT阶段
FROM阶段

一条查询的sql语句先执行的是FROM table负责把数据库的表文件加载到内存中去

WHERE阶段

WHERE会把表中的数据进行过滤,取出符合条件的记录行,生成一张临时表

GROUP BY阶段

GROUP BY阶段按照指定的列名切分成若干临时表

HAVING阶段

该阶段根据HAVING子句中出现的谓词对虚拟表进行分组进行筛选

SELECT阶段

这个阶段是投影的过程,处理SELECT子句提到的元素

  • 计算SELECT列表中的表达式
  • 若有DISTINCT,则删除重复行
ORDER BY阶段

根据ORDER BY子句中指定的字段进行排序

LIMIT阶段

取出指定行的记录,产生临时表,并返回给查询用户

发表评论

表情:
评论列表 (有 0 条评论,392人围观)

还没有评论,来说两句吧...

相关阅读