【SQL第4回】並び替えと件数制限:ORDER BY

SQL基礎講座 全10回(第4回)

【SQL第4回】並び替えと件数制限:ORDER BY

取得したデータを特定の順番に並び替える「ORDER BY句」と、出力する件数の上限を設定する「LIMIT句」のルールを学びます。最新順やランキング形式の表示を習得しましょう。

📌 SQL講座ロードマップ一覧(クリックで移動)

1. レコードを並び替える ORDER BY 句

データベースから取得したデータは、デフォルトでは登録順など規則性のない状態で並びます。これを「料金の安い順」「登録日の新しい順」のように並び替えたい時に使用するのが `ORDER BY句` です。

`ORDER BY カラム名` の後ろに、並び順の方向を以下のキーワードで明示します。

  • ASC (Ascending) : 「昇順(小さい順)」。数値なら小さい順、日付なら古い順になります(※省略した場合の標準値です)。
  • DESC (Descending) : 「降順(大きい順)」。数値なら大きい順、日付なら最新順になります。

2. 出力結果の件数を制限する LIMIT 句

Webサイトで「新着記事のトップ3」や「売上ランキング上位5名」のように、該当するレコードの最初から一定数だけを取り出したい時には、クエリの最後に `LIMIT` 句を使用します。

`LIMIT 5` と末尾に指定することで、いくらテーブルに大量のデータがあっても、先頭から5レコードだけを切り取って表示結果とすることができます。

3. SQL句の厳格な記述順ルール

SQLでは、記述する「句」の順序が厳密に決まっています。この順序を1箇所でも間違うと、RDBMSは構文エラー(SyntaxError)を出してクエリを実行してくれません。

💡 基本的なSQL句の順番

SELECT カラム名
FROM テーブル名
WHERE 絞り込み条件
ORDER BY 並び替えカラム [ASC/DESC]
LIMIT 出力件数;

4. 並び替えと件数制限を実行するSQLクエリ

以下のクエリは、`products`(商品)テーブルから価格が高い順(降順)にソートして、上位3件のみを取得するランキング抽出の実用的なコード例です。

order_limit.sql
-- 高額商品トップ3を取得する
SELECT
    product_name AS 商品名,
    price AS 価格
FROM
    products
ORDER BY
    price DESC
LIMIT 3;
✍️ 第4回 理解度チェック(問題)

SQLでデータを「大きい順(降順)」に並び替える際、ORDER BY句で指定するカラム名のすぐ後ろに記述する英文字4文字のキーワードは何でしょうか?

※この問題の解答と解説は、ページ最下部(まとめの前)に掲載しています。

5. まとめと次回予告

第4回の講義はお疲れ様でした!今回の重要ポイントを振り返りましょう。

  • `ORDER BY` 句を使って、昇順 (ASC:小さい順) または降順 (DESC:大きい順) に並び替えられる。
  • `LIMIT 件数` 句を文末に追加することで、取得結果のレコード数を効率的に制限できる。
  • クエリには `SELECT ➔ FROM ➔ WHERE ➔ ORDER BY ➔ LIMIT` という厳格な記述順ルールが存在する。

次回(第5回)は、各レコードの値を処理するのではなく、テーブル全体のデータを計算する「SUMやCOUNTといった集計関数」について学びます。お楽しみに!

🔑 第4回 理解度チェックの解答と解説

【解説】

正解は **`DESC`** です。 `ORDER BY price DESC` と記述すると、値段が最も高いものから順番にレコードが出力されます。なお、逆に小さい順(昇順)に並び替えるキーワードは `ASC` ですが、こちらは記述を省略した際の初期状態(デフォルト)の動作と一致します。