【发布时间】:2013-06-12 06:41:12
【问题描述】:
如果我执行select * from mytable,记录将按什么顺序显示?它会占用第一列还是按某种元数据排序?
我正在使用 Oracle 数据库。
【问题讨论】:
如果我执行select * from mytable,记录将按什么顺序显示?它会占用第一列还是按某种元数据排序?
我正在使用 Oracle 数据库。
【问题讨论】:
没有默认“排序”顺序。关系表中的行未排序。
获得特定订单的唯一(真的:唯一)方法是使用ORDER BY
在没有ORDER BY 的情况下运行SELECT 时看到的任何顺序纯属巧合,并且可以随着下一次执行而改变。
由于各种原因,顺序可能会发生变化:
这里有一个小 SQLFiddle,向您展示“顺序”如何改变:http://sqlfiddle.com/#!4/19d14/2
请注意,最初的“顺序”甚至与插入顺序不同!
【讨论】:
除非指定,否则通常NO排序顺序。
这可能与存储、索引、索引存储、索引选择、执行计划、数据库引擎实现不同,就像我的感觉一样。
如您所见,您要么指定排序顺序,要么不依赖它。
【讨论】: