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) 收藏 举报
浙公网安备 33010602011771号