掌握了查询命令的执行顺序,才能真正理解SQL语句的执行原理。
1)FROM
- 执行顺序:FROM命令永远是第一个执行的
- 作用:FROM命令相当于一个读取流,负责将硬盘上的文件加载到内存中生成一个==【临时表】==,供后续查询命令使用。
2)WHERE
- 作用:循环遍历临时表所有的数据行,每次得到一个数据行,根据数据行的信息,判断该数据行是否需要被定位,在循环完毕后,WHERE命令将所有定位的数据行读取出来,在内存中生成一个新的临时表进行保存。
3)GROUP BY==(唯一可以生成多张临时表的查询命令)==
- 作用:首先根据分组字段数据种类,将临时表数据行进行分类。然后,将具有相同特征的数据行读取出来,保存到一个新的临时表中。
4)HAVING
- 作用:删除不满足条件的临时表。
5)SELECT
1)执行原理:SELECT执行特征与提供临时表的命令有关
- 如果临时表由【FROM】或者【WHERE】提供的,此时SELECT语句将指定字段下所有内容读取出来生成一个新的临时表。
- 如果临时表由【GROUP BY】提供的,此时SELECT可能面对多个临时表。
- SELECT将依次操作每一个临时表。
- SELECT操作某个临时表时,只会读取【指定字段下第一个数据】。
- SELECT将从多个临时表读取的数据合成一列保存到一个新的临时表。
6)ORDER BY
- 作用:排序。
- 默认升序(ASC),降序(DESC)。
7)LIMIT
- 用于分页查询。