MySQLのORDER BYを完全解説!初心者でもわかる並び替えの基本操作
生徒
「データは表示できるようになったんですが、順番がバラバラで見づらいです…」
先生
「そのときに使うのがORDER BYです。ORDER BYは、データを決めたルールで並び替えるための命令です。」
生徒
「数字順とか、あいうえお順に並べることもできますか?」
先生
「できます。紙の名簿を年齢順や名前順に並べ替えるのと同じ感覚で使えますよ。」
1. SQLとは何か?
SQLは、データベースと呼ばれる大量のデータを整理して保存する箱に対して、操作の指示を出すための言語です。MySQLでは、このSQLを使ってデータを表示したり、条件で絞り込んだりします。
ORDER BYは、その中でも「表示の順番」を整えるために使うSQLの重要な要素です。
2. ORDER BYとは何をするものか
ORDER BYは、SELECT文で取得したデータを、指定した列の順番で並び替えるための仕組みです。データそのものを変更するのではなく、表示の順番だけを変えます。
例えるなら、名簿の内容はそのままで、並び順だけを年齢順や名前順に並べ替える作業です。
3. サンプルとなるテーブルの内容
ここでは、会員情報を管理するusersテーブルを使って、ORDER BYの使い方を説明します。まずは、SQLを実行する前のテーブルの状態を確認します。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
4. ORDER BYを使わない場合の表示
ORDER BYを指定しない場合、MySQLは基本的に登録された順番でデータを表示します。この順番は、必ずしも見やすいとは限りません。
SELECT *
FROM users;
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
5. ORDER BYで昇順に並び替える
ORDER BYの基本形は、「ORDER BY 列名」です。これだけで、指定した列を基準に小さい順、またはあいうえお順で並び替えられます。この並び方を昇順と呼びます。
SELECT *
FROM users
ORDER BY age;
id | name | age | email
---+------------+-----+-------------------
2 | 佐藤花子 | 19 | hanako@example.com
4 | 高橋次郎 | 22 | jiro@example.com
1 | 山田太郎 | 25 | taro@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
年齢が小さい順に並び替えられているのが分かります。
6. DESCを使った降順の並び替え
大きい順に並び替えたい場合は、ORDER BYの後ろにDESCを付けます。DESCは「降順」という意味です。
SELECT *
FROM users
ORDER BY age DESC;
id | name | age | email
---+------------+-----+-------------------
3 | 鈴木一郎 | 30 | ichiro@example.com
1 | 山田太郎 | 25 | taro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
このように、DESCを付けるだけで並び順が逆になります。
7. 文字の並び替えとORDER BY
ORDER BYは、数字だけでなく文字にも使えます。名前を基準に並び替えると、五十音順のような形になります。
SELECT *
FROM users
ORDER BY name;
これは、名簿を名前順に並べ替えるのと同じ感覚です。
8. ORDER BYを使うときの考え方
ORDER BYは、「どの列を基準に並べるか」を決めるための命令です。SELECTでデータを取り出し、その結果をORDER BYで整えるという流れで考えると理解しやすくなります。
表示順を整えるだけなので、テーブルの中身が変わることはありません。
9. 並び替え後もテーブルの中身は変わらない
ORDER BYは、表示の順番を変えるだけのSQLです。そのため、SQL実行後も、テーブル自体のデータは次のように元のままです。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
ORDER BYは、安全に使える表示専用の機能として、SQL基礎の中でも非常に重要な役割を持っています。