前提・実現したいこと
学校の課題でデータベースの性能評価の課題があります。
そこで、データベースの中身をソートし、その必要時間を計測します。。
SQL
1SELECT * FROM データベース名 ORDER BY time ASC
のように表示するのではなく、中身の順序の整理をしたいと思っています。
用いるデータベースは以下のようなものです。
id time name 1 23 Ken 2 34 John 3 12 Rei 4 45 Tom
期待すること
id time name 3 12 Rei 1 23 Ken 2 34 John 4 45 Tom
上のようにtimeの順番でデータベース内がソートされることを期待します。
試したこと
python
1UPDATE テーブル名 ORDER BY time DESC
で 並び替えを試みたが、下記のエラーが出てしまう。
発生している問題・エラーメッセージ
File "Sort.py", line 32, in <module> for row in cur.execute(select_sql): sqlite3.OperationalError: near "ORDER": syntax error
環境
python3.6.8
sqlite3をインポート
どうぞよろしくお願いいたします!
ソート用の列はあるのかい?まさかinsert順を直して入れ直したいわけではないだろうし
閲覧ありがとうございます。
恥ずかしいことながら、「ソート用の列」ということの意味をつかめないでおります。
コマンドラインからselec打ったらinsert順した順で結果が表示されると思うけど、それはinsertした順に表示させますよーって言うルールがあるわけじゃなくてたまたまそういう順序で表示されているんです。
なので、並び順を示す列が無ければソート前・ソート後という状態自体がありません。
>>たまたまそういう順序で表示されているんです。
「たまたま」その順序で出てきた、ということなんですね。
ありがとうございます。とても参考になりました。
もし学校にoracleの入ってるサーバーがあったらそこにselect打たせてもらうといいよ。毎回順序ランダムだし、maimasukunさんの言っているrowidも明示的に列し指定すれば見れるよ、雑な言い方だけどrowidが保証されない事もわかるよ
さらに詳しくありがとうございます。
学校のパソコンにあるか調べて試してみます!

回答2件
あなたの回答
tips
プレビュー