关于SELECT执行顺序的问题!

 最近准备数据库DBA的面试,碰到考察select语句执行顺序的问题,见附,回头查询了下王珊老师的《数据库系统概论》,里面给SELECT的定义格式为:
SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…
FROM<表名或视图名>[,<表名或视图名>]…
[WHERE<条件表达式>]
[GROUP BY<列名1>][HAVING<条件表达式>]
[ORDER BY<列名2>][ASC|DESC]
文中其对SELECT语句的含义解释为: 根据where子句的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按Select子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值进行分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数(sum,count,max,min等)。如果GROUP子句带HAVING短语,则只有满足指定条件的组才会输出。如果有ORDER子句,则结果表还要按<列名2>的值的升序或降序排序。
我反复体会了好几遍,感觉这样的叙述很容易让人得出SELECT语句执行顺序为:from,where,目标列表达式,group,使用聚集函数计算,having,order的结论,但是这样的执行顺序总感觉特别扭,与所体会的SELECT的用法不那么匹配,通过网络调研,得到如下结果,特分享出来,希望对大家有所帮助:
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
有了上述这样的认识,我们来做附录上的两到SQL面试题,答案将很容易,分别是E,C
1)in a select statement that includes a where clause,where is the group by clause placed in the select statement?______。
A. immediately after the select clause
B. before the where clause
C. before the from clause
D. after the order by clause
E. after the where clause
2)in a select statement that includes a where clause,where is the order by clause placed in the select statement?______.
A.immediately after the select clause
B.before the where clause
C.after all clause
D.after the where clause
E.before the from clause
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值