• ベストアンサー

デフォルトでデータが表示される順番

質問があります。 oracle初心者です。 oracle8.1で insert文によってデータを登録すると 一番最後のレコードに表示されません。 select文(select * from "テーブル名")を 書いて全レコードを抽出すると、中途半端な位置に 最新レコードが表示されます。 デフォルトでテーブルのデータが表示される位置に 決まりというのはあるのでしょうか MYSQLでは最後の行に最新レコードが表示されるはずですが、 オラクルでは違うのでしょうか。 もちろん、文字コード順や数値の順番ではないみたいです。 困っていますご回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>デフォルトでテーブルのデータが表示される位置に >決まりというのはあるのでしょうか 無いです。 どのバージョンでもそうですが、順序を意識したselect分をしたいのなら、必ずorder by句でソート順の指定をしてください。 #アクセスパスによっても出力順が変わったりしますので。

19746999
質問者

お礼

急いでたので本当に助かりました。 ありがとうございました。

その他の回答 (2)

回答No.3

殆どのRDBMSでは、「order by」を指定しない限り、検索順序の保証はされていません。 >MYSQLでは最後の行に最新レコードが表示されるはず MySQLも、そんな保証はしていませんけど? MySQLのマニュアルにも、「order byなしでは順序保証しない」ことが明記されていますよ? 例外的にSQL Serverでは、「primary key」指定時に、「order by」なしでも順序保証しているようですけどね。

19746999
質問者

お礼

>MySQLも、そんな保証はしていませんけど? そうだったんですか! 初めて知りました。 本当に勉強になりました ありがとうございました。

回答No.2

>デフォルトでテーブルのデータが表示される位置に >決まりというのはあるのでしょうか ORDER指定をしない以上は、表示の順番はどうでも良いという意味になりますので、オラクルの都合で表示します。 オラクルにとって都合が良いのは検索順に出すことですが、検索順はオプティマイザが検索方法を考えるので、 状況次第で変わることになります。

19746999
質問者

お礼

急いでたので助かりました。 ありがとうございました。 大変参考になったので、k_o_r_o_c_h_a_nさんにも ポイント差し上げたいのですが 最初に回答していただいた方に差し上げることにします。 ごめんなさい。

関連するQ&A