假设有一张表有 编号,姓名,年龄,身高3列, 现在要找到所有人的姓名,以及对应的年龄.
数据库在查找的时候
1.是是一条一条记录里面取需要的项, 也就是先取出编号1的记录里面的姓名,再取年龄然后再取编号2里面的
2.还是一项一项取出所有符合条件的记录,也就是直接先取出所有的姓名, 再取所有的年龄.
我猜想应该是第一种,如果第一种的话,数据库的数据文件是不是应该就是像数组一样支持随机访问,而不是链表一样只能顺序访问!
------解决方案--------------------
SQL Select语句完整的执行顺序:
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
另外:一个查询语句各个部分的执行顺序:
--8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
--(1) FROM <left_table>
--(3) <join_type> JOIN <right_table>
--(2) ON <join_condition>
--(4) WHERE <where_condition>
--(5) GROUP BY <group_by_list>
--(6) WITH {CUBE
------解决方案--------------------
ROLLUP}
--(7) HAVING <having_condition>
--(10) ORDER BY <order_by_list>
看完这个你就明白了