本当に重要ではありません select
以降、列は物理的に 取得する順序を(論理的に)指定できます。
また、 select *
を使用している場合 順序を指定することはできませんが、おそらく指定するべきではありません。それを行う必要がある貴重な状況はほとんどありません(たとえば、DB分析ツール)。ほとんどの場合、すべてが必要な場合でも、必要な個々の列を選択することをお勧めします。これにより、スキーマの変更をすばやくキャッチできるため、プログラムをそれらに適応させることができます。
いずれの場合も、SQL自体は、明示的にしない限り、列が返される順序について保証しません。 それらをリストします。 select *
今日は序数で、明日はアルファベット順にそれらをあなたに与えるかもしれません。特定の実装でそれが可能であっても(「正しい」場所に列を含む新しいテーブルを作成してデータをコピーするか、 alter table T insert column C1 before C2 コード> )、私はそれに反対することをお勧めします。他の実装には移植できないので、コードをできるだけ移植できるようにしたいです。
さらに、SQLで指定できる範囲を超えて、DBMSは方法を完全に制御できる必要があります。 データを保存します。主キーが7番目と42番目の列の複合である可能性があり、物理レコードの先頭に配置する方が効率的である可能性があります。