私が読んだSQLコードはたくさんありますが、開発者は既定の並べ替え順序が常に成立すると想定しているようです。たとえば、HTML選択リストを作成するときには、SELECT id, name FROM table
のORDER BY
句を発行しないでください。デフォルトの並べ替え順序を処理するSQLのベストプラクティス
私自身の経験からは、ORDER BY
節が与えられていない場合はインデックスを持たない場合、dbmsはFIFOを使用してデータを並べ替えるようです。ただし、その順序は保証されていません。しかし、テーブルに変更がなければ、dbmsによるデータの並べ替えは見たことがありません。
テーブルに変更がない場合、dbmsが非決定的な順序でデータを選択したことはありますか?
常にORDER BY句を入れるのがベストプラクティスですか?
SQL準拠のデータベースには、定義上、*デフォルトのソート順*はありません。ほとんどのデータベースは、クエリの性質や類似したクエリが実行された時点のインデックスの状態によっても、異なる順序でレコードを返すことができます。順序が重要であると仮定して、必ずデータを格納する順序を指定する必要があります。指定されていない順序のクエリは繰り返し実行できないことがあります。 –