4

を実行select * from mytableすると、レコードはどの順序で表示されますか? 最初の列を取るか、それとも何らかのメタデータで並べ替えるか?

Oracle データベースを使用しています。

4

2 に答える 2

13

デフォルトの「ソート」順序はありません。リレーショナル テーブルの行はソートされません

特定の注文を取得する唯一の (本当に: 唯一の) 方法は、ORDER BY

SELECTa を実行せずに実行したときに表示される順序ORDER BYは、まったくの偶然であり、次の実行で変更される可能性があります。

順序は、さまざまな理由で変更される可能性があります。

  • 他のセッションが同じステートメントを実行している
  • テーブルが更新されました
  • 実行計画が変わる
  • ...

これは、「順序」がどのように変化するかを示す小さな SQLFiddle です: http://sqlfiddle.com/#!4/19d14/2

最初の「オーダー」は広告掲載オーダーと同じではないことに注意してください。

于 2013-06-12T06:43:22.247 に答える
1

通常、指定しない限り、並べ替え順序はありません。

これは、保存、インデックス作成、インデックスの保存、インデックスの選択、実行計画、データベース エンジンの実装など、さまざまです。

ご覧のとおり、並べ替え順序を指定するか、それを当てにしないかのどちらかです。

于 2013-06-12T06:42:41.623 に答える