直奔主题,我们在写sql语句的时候经常会出现很多本不应该犯的错误,这些错误可能是由sql语句执行顺序导致的,而且深入理解sql语句的执行顺序可以帮助我们更好的写sql,所以总结执行顺序总结如下:

1. from

from这个很好理解,我们sql语句是用来处理数据的,那么第一步首先要把数据拿过来吧,这个from就相当于拿数据一样,把数据从from的地方拿过来。

2. join

有时候你拿的数据可能不止一个表,可能是多个表,并且多个表之间还有关系,那么可以用join关键字来将多个表拼接。

3. on

那么多个表进行拼接的时候是某一行与某一行随意的拼接吗?肯定不是,他们肯定要遵循某一个规则,比如说这两个行的某个字段相同,就可以以这个条件来做拼接,其实这也相当于一次过滤,多表拼接的时候把不需要的数据过滤掉。

4. where

拼接后的表可以看作是一个大表,但是这里面有些数据我不想要怎么办?那么可以用where来做过滤,这里又有了第二次过滤。

5. select

过滤完的表保存了所有字段的值,但是我并不是需要所有字段的值呀,此时可以通过select关键字来指定需要查询的字段。

6. group by

经过上述的5个步骤,一个表基本上就被查询出来了,但是有时候需要做一些高级查询的时候上述的功能是不够的,比如我们这个里面有多行的某一个字段的值相同,我想统计相同的值有多少个,此时我们就可以通过group by关键字来对表进行分组,即满足某一条件的多行数据被分到一个组。

7. having

分组后的数据又有很多我们不想要的数据怎么办,此时我们可以用having关键字来对分组后的表数据进行过滤。

8. order by

经过上述的所有步骤剩下的就是我们想要的全部数据了,但是我们希望表的数据按照某一规则进行排序就可以用order by字段。

9. limit

最终我们想查询一个表时可能并不需要看到全部数据,只想看到部分数据,此时可以用limit关键字来指定查看的表数据的行数就ok。

总结:以上就是sql语句的执行顺序,知道了顺序我们写sql就会少犯很多错,但是还是还是那句话,要想sql写的牛,还得靠自己多写多练,这东西就是熟能生巧的事!