MySQL技术内幕:SQL编程 第3章 查询处理 读书笔记

查询的执行顺序 每步操作产生虚拟表存储处理结果

(8)SELECT

(9)DISTINCT<select_list>                        添加唯一索引 去除重复数据 使用group by就不用distinct了

(1)FROM<left_table>

(3)<join_type>JOIN<right_table>             join操作 笛卡尔积 outer join 还要合并主表不符合条件的记录到结果集中

(2)ON<join_condition>                             on 筛选结果

(4)WHERE<where_condition>

(5)GROUP BY<group_by_list>

(6)WITH{CUBE|ROLLUP}                          貌似没啥用

(7)HAVING<having_condition>                  按条件筛选分组结果 如条件 having count(o.order_id)<2 但不能用 count(1)或count(*) 还有子查询不能用作分组的聚合函数 如 having count(select ...)<2

(10)ORDER BY<order_by_list>                  添加索引可以减少排序开销

(11)LIMIT<limit_number>

posted on 2017-02-09 13:36  weiguoyuan  阅读(143)  评论(0)    收藏  举报

导航