旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

mysql中语句实行的递次以及查询处置惩罚阶段的剖析【MySQL教程】,mysql

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:47评论:0


导读:本篇文章给人人带来的内容是关于mysql中语句实行的递次以及查询处置惩罚阶段的剖析,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。MySQL的语句一共分...
本篇文章给人人带来的内容是关于mysql中语句实行的递次以及查询处置惩罚阶段的剖析,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。

MySQL的语句一共分为11步,如下图所标注的那样,最早实行的老是FROM操纵,末了实行的是LIMIT操纵。个中每个操纵都邑发生一张假造的表,这个假造的表作为一个处置惩罚的输入,只是这些假造的表对用户来说是通明的,然则只要末了一个假造的表才会被作为效果返回。假如没有在语句中指定对应的操纵,那末将会跳过响应的步骤。

(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>

下面我们来具体剖析一下查询处置惩罚的每个阶段

1、FORM: 对FROM的左侧的表和右侧的表盘算笛卡尔积。发生虚表VT1

2、ON: 对虚表VT1举行ON挑选,只要那些相符<join-condition>的行才会被纪录在虚表VT2中。

3、JOIN: 假如指定了OUTER JOIN(比方left join、 right join),那末保存表中未婚配的行就会作为外部行添加到假造表VT2中,发生假造表VT3, rug from子句中包括两个以上的表的话,那末就会对上一个join衔接发生的效果VT3和下一个表反复实行步骤1~3这三个步骤,一向随处置惩罚完一切的表为止。

4、WHERE: 对假造表VT3举行WHERE前提过滤。只要相符<where-condition>的纪录才会被插进去到假造表VT4中。

5、GROUP BY: 依据group by子句中的列,对VT4中的纪录举行分组操纵,发生VT5.

6、CUBE | ROLLUP: 对表VT5举行cube或许rollup操纵,发生表VT6.

7、HAVING: 对假造表VT6运用having过滤,只要相符<having-condition>的纪录才会被 插进去到假造表VT7中。

8、SELECT: 实行select操纵,挑选指定的列,插进去到假造表VT8中。

9、DISTINCT: 对VT8中的纪录举行去重。发生假造表VT9.

10、ORDER BY: 将假造表VT9中的纪录根据<order_by_list>举行排序操纵,发生假造表VT10.

11、LIMIT: 掏出指定行的纪录,发生假造表VT11, 并将效果返回。

相干引荐:

mysql中utf8和utf8mb4之间的区分有哪些?

mysql中group_conca函数的怎样修正其长度限定

mysql大表中count()的用法以及mysql中count()的优化

以上就是mysql中语句实行的递次以及查询处置惩罚阶段的剖析的细致内容,更多请关注ki4网别的相干文章!

标签:mysql


欢迎 发表评论: