Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1346031
  • 博文数量: 205
  • 博客积分: 6732
  • 博客等级: 准将
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-04 17:59
文章分类

全部博文(205)

文章存档

2016年(1)

2015年(10)

2014年(1)

2013年(39)

2012年(23)

2011年(27)

2010年(21)

2009年(55)

2008年(28)

我的朋友

分类: Oracle

2013-05-29 12:23:45

select语句的结构与执行顺序,下面的序号代表执行顺序

8         SELECT (9)DISTINCT
11      
1         ROM
3       JOIN
2   ON
4         WHERE
5        GROUP BY
6        WITH {CUBE | ROLLUP}
7        HAVING
10      ORDER BY

补充说明:1、将以上顺序结构理解为每个步骤产生一个虚拟表,该虚拟表被用作下一个步骤的输入。只有最后一步生成的表返回给调用者。

                   2、如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。

                   3、在带有group  by子句的查询中,select列指定的字段要么是group  by子句中的字段,要么包含在聚合函数中

                        (也就是说在带有group  by子句的查询中,只要select的子句中出现的字段,在group by 子句中都必须出现,除非是聚合函数)

                   4、having 子句作用就是放在group by子句后面与其组合使用,用于进一步筛选

                   5、DISTINCT是在对having过程做进一步处理

阅读(1942) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~