理解临时表,会对查询语句有更深的理解,知其然,更要知其所以然。
临时表:
1)作用:每一个查询命令在执行的时候,实际上操作的都是上一个查询命令生成的临时表。
2)生命周期:在当前查询命令执行完毕之后,MySQL服务器自动将上一个查询命令生成的临时表从内存中销毁。导致用户最终看到的临时表只能是最后一个查询命令生成的临时表。
七个查询命令与临时表之间的关系:
1)七个执行命令中,只有FROM命令不需要操作临时表,FROM命令负责将硬盘上的表文件加载到内存中生成一个临时表,剩下的留个命令操作的都是上一个查询命令生成的临时表。
2)七个执行命令中,只有GROUP BY命令在执行之后,才有机会在内存中生成多个临时表。其他五个命令,在执行完毕之后 ,只能在内存中生成一个临时表。
3 ) 七个执行命令中,只有HAVING命令在执行之后,不会生成新的临时表,负责将GROUP BY生成的临时表不满足条件的临时表从内存中进行删除处理。