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

把A表全部插入新表B后,数据的顺序会变化吗?
把A表全部插入新表B后,数据 顺序会变化吗? 即:如果A表的数据有5条数据,没有任何排序规则(因为表没有建立主键和索引,数据呢又是是一条一条insert的),然后把这样的表select * into B from A。
  请问,两表的数据排列顺序会有差别吗?

------解决方案--------------------
无论有没有聚集索引,关系数据库的表,不应该存在“顺序”这个概念,它超出了关系数据库理论。只有查询出来的时候,为了某些展示目的而做了排序而已。所以如果不应该你的查询,其实你没必要在乎这个东西。
------解决方案--------------------
表是无序的,这样插入是否会改变其物理的存储顺序,应该是没有保证的,因版本而异,即使现在都不变,也不表示以后的版本不变,如DBA兄所说,没必要在乎这个“顺序”
------解决方案--------------------
请指定有效的排序让其保证顺序.
------解决方案--------------------
探讨

无论有没有聚集索引,关系数据库的表,不应该存在“顺序”这个概念,它超出了关系数据库理论。只有查询出来的时候,为了某些展示目的而做了排序而已。所以如果不应该你的查询,其实你没必要在乎这个东西。

------解决方案--------------------
insert 的时候,默认都是插入到表的最后,如果有聚集索引,会重新排序,但是考虑这个是不应该的。除非你的不是关系数据库。
------解决方案--------------------
探讨

无论有没有聚集索引,关系数据库的表,不应该存在“顺序”这个概念,它超出了关系数据库理论。只有查询出来的时候,为了某些展示目的而做了排序而已。所以如果不应该你的查询,其实你没必要在乎这个东西。

------解决方案--------------------
关系数据库是基于集合的,除非有聚集索引,否则表中数据是没有顺序这个概念的。顺序只存在于查询后的显示。
------解决方案--------------------
探讨

insert 的时候,默认都是插入到表的最后,如果有聚集索引,会重新排序,但是考虑这个是不应该的。除非你的不是关系数据库。

------解决方案--------------------
除非 在自增列上建立了主鍵或者聚集索引
不然 有可能會出現下次Select不按自增列排序時的查詢順序變動
------解决方案--------------------
如果没有索引的话,顺序一般是没有区别的