【SQL入門編5】ORDER BYを使ってデータを並び替えよう

SQL入門

本記事では、SQLのORDER BYについて解説します。

前回の記事ではAND演算子やOR演算子の使い方を解説しました。

ORDER BYはSQLの中でもややこしい分類に入ります。

そこで今回はORDER BYの使い方を1つずつ丁寧に解説していきましょう。

SQLのORDER BYとは?

「ORDER BY」は日本語で「〜順に並べる」という意味になります。

ORDER BYは取得したデータを並び替えるためのものです。

ORDER BYの後にカラム名を指定することで、そのカラムを基準にレコードを並び替えることができます。

たとえば、データを番号順に並べ替えたり、名前のアルファベット順に並べ替えたりできます。

このように、取得したデータを並び替えるときは、ORDER BYが必要なのです。

SQLのORDER BYの使い方

それではORDER BYの具体的な使い方をみていきましょう。

次の項目に従って解説していきます。

  • 昇順に並べる
  • 降順に並べる
  • 複数の要素で並べ替える
  • ORDER BYとWHEREを組み合わせる

なお、今回は第1回目の記事で作成したテーブルを使って解説します。第1回目の記事で演習用のテーブルを作っていない方は、【SQL入門編1】初心者必見!SQLのクエリの書き方を学ぼうを読んで予め作成してくださいね。

昇順に並べる

ORBER BYを使ってデータを昇順に並べ替える方法を解説します。

昇順とは「1、2、3、4……」のように順番に並んでいる状態のことです。

○コード例

SELECT name,age FROM TEST.Student ORDER BY age ASC;

○実行結果

まずORBER BYの後にどのカラムを基準に並び替えたいか、カラム名を指定します。

今回はageカラムを指定しているので、ageカラムのデータを基準に並べ替えています。

昇順に並べ替える場合は、その後に「ASC」と記述してください。

「ASC」と指定することで、昇順に並べ替えることが可能です。

もう1つ例をみておきましょう。

○コード例

SELECT name,birthday FROM TEST.Student ORDER BY birthday ASC;

○実行結果

先程は数値データを基準に並べ替えましたが、数値だけでなく日付データを使って並べ替えることも可能です。

上記の例ではbirthdayを基準にデータを並べ替えています

実行結果をみて分かる通り、誕生日順にデータが並んでいますね。

降順に並べる

つづいて、ORDER BYを使って降順に並べ替える方法をみていきましょう。

降順とは「4、3、2、1……」のように逆順に並んでいる状態のことです。

○コード例

SELECT name,age FROM TEST.Student ORDER BY age DESC;

○実行結果

今回もORDER BYを使ってageを基準に並べ替えています。

後ろに「DESC」を付けることで、データを降順に並べ替えることが可能です。

  • ASC:データを昇順に並べ替える
  • DESC:データを降順に並べ替える

SQLではこのようなルールとなっていますので、覚えて使えるようにしましょう。

複数の要素で並べ替える

ORDER BYに複数のカラム名を指定することで、複数の要素で並べ替えることも可能です。

○コード例

SELECT age,id FROM TEST.Student ORDER BY age,id ASC;

○実行結果

上記のコードは、ageカラムとidカラムの2つを指定していますね。

こうすることで、ageカラムとidカラムの2つの基準に並べ替えることが可能です。

ageを基準にまずデータを昇順に並べ替え、その後にidを基準に並べ替えています

このようにorder byに複数のカラムを指定することも可能です。

ORDER BYとWHEREを組み合わせる

最後にORDER BYとWHEREを組み合わせるやり方をみていきましょう。

WHEREを使うことで、特定の条件に合致する場合のみ取得ができます。

WHEREとORDER BYを組み合わせることで、特定条件に合致する場合のみ取得した後、それらのデータを並び替えることが可能です。

○コード例

SELECT name,age FROM TEST.Student WHERE age>=10 ORDER BY age ASC;

○実行結果

上記の例ではWHERE句によってageが10より大きいものをまず抽出しています。

その後にORDER BYによって、ageを基準に昇順に並び替えています

このようにWHERE句とORDER BYを一緒に使うことも可能です。

もう1つ例をみていきましょう。

○コード例

SELECT name,id,age,gender FROM TEST.Student WHERE gender="女" ORDER BY age,id ASC;

○実行結果

上記の例では、WHERE句によってgenderが「女」であるものを抽出しています。

その後にORDER BYによって、 ageとidを基準に昇順に並び替えています

まとめ

本記事では、ORDER BYの使い方について解説しました。

ORDER BYによって、レコードを昇順や降順に並び替えることが可能なのが、お分かり頂けたかと思います。

データを並び替えるなら、SQLでなくてもPHPやPython側でやることも可能なのですが、SQL側でやった方が効率的です。

ORDER BYの使い方をぜひ覚えてくださいね。

次回は、LIMITを使って取得するレコード数を制限する方法をみていきます。

手に職をつけてプログラマー転職

そろそろ本気で将来のことを考えなくちゃ……手に職をつけてプログラマーやエンジニアに転職したいなぁ。でも、プログラミングスクールってものすごくたくさんあるし、なんか敷居が高いのよね

これからプログラマーやエンジニアへの転身を目指すあなたに、どのスクールがもっとも適しているのかを紹介します。

SQL入門
【この記事を書いた人】
谷津弘樹

某自社開発のIT企業に勤めていた元webプログラマーです。主にサーバーサイド側を担当し、phpを使った開発経験があります。現在は退職しフリーランスライターとして活動中。IT系の記事を主に執筆し生計を立てています。

CANIT
タイトルとURLをコピーしました