日期:2014-05-17  浏览次数:20486 次

数据库里面是怎么取数据的?按列取,还是按行取?望解答!
假设有一张表有 编号,姓名,年龄,身高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> 


看完这个你就明白了