之前写sql语句都是懵的,明白各查询命令执行顺序,才能有逻辑的写

Posted 一切随缘~~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了之前写sql语句都是懵的,明白各查询命令执行顺序,才能有逻辑的写相关的知识,希望对你有一定的参考价值。

掌握了查询命令的执行顺序,才能真正理解SQL语句的执行原理。

1)FROM

  1. 执行顺序:FROM命令永远是第一个执行的
  2. 作用:FROM命令相当于一个读取流,负责将硬盘上的文件加载到内存中生成一个==【临时表】==,供后续查询命令使用。

2)WHERE

  1. 作用:循环遍历临时表所有的数据行,每次得到一个数据行,根据数据行的信息,判断该数据行是否需要被定位,在循环完毕后,WHERE命令将所有定位的数据行读取出来,在内存中生成一个新的临时表进行保存。

3)GROUP BY==(唯一可以生成多张临时表的查询命令)==

  1. 作用:首先根据分组字段数据种类,将临时表数据行进行分类。然后,将具有相同特征的数据行读取出来,保存到一个新的临时表中。

4)HAVING

  1. 作用:删除不满足条件的临时表。

5)SELECT

​ 1)执行原理:SELECT执行特征与提供临时表的命令有关

  1. 如果临时表由【FROM】或者【WHERE】提供的,此时SELECT语句将指定字段下所有内容读取出来生成一个新的临时表。
  2. 如果临时表由【GROUP BY】提供的,此时SELECT可能面对多个临时表。
    1. SELECT将依次操作每一个临时表。
    2. SELECT操作某个临时表时,只会读取【指定字段下第一个数据】。
    3. SELECT将从多个临时表读取的数据合成一列保存到一个新的临时表。

6)ORDER BY

  1. 作用:排序。
  2. 默认升序(ASC),降序(DESC)。

7)LIMIT

  1. 用于分页查询。

以上是关于之前写sql语句都是懵的,明白各查询命令执行顺序,才能有逻辑的写的主要内容,如果未能解决你的问题,请参考以下文章

mysql语句执行顺序

sql查询语句的各个命令执行的标准顺序是啥?为啥?

sql查询语句的各个命令执行的标准顺序是啥?为啥?

sql语句子句执行顺序

oracle 各部分执行顺序

sql语句的执行顺序是啥,为啥下面这两个sql执行的结果是一样的