SELECT / WHERE / ORDER BY / LIMITを練習する

入門 | 11分 で読める | 2026.06.17

公式ドキュメント

今回やること

この記事では、小さな users テーブルを使って、SELECTWHEREORDER BYLIMIT を練習します。

目的は、SQLを暗記することではなく、条件を少しずつ足して結果がどう変わるかを確認することです。

前提条件

  • PostgreSQL、SQLite、MySQLなどSQLを実行できる環境がある
  • SELECT がデータを取得する命令だと知っている
  • 学習用の空テーブルで試す

この記事のSQLは標準的な書き方に寄せています。日時型などは使うデータベースによって細部が異なる場合があります。

Step 1: 練習用テーブルを作る

まず、ユーザー情報を入れるテーブルを作ります。

CREATE TABLE users (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  email TEXT NOT NULL,
  active BOOLEAN NOT NULL,
  age INTEGER NOT NULL,
  created_at DATE NOT NULL
);

ここでは、名前、メール、アクティブ状態、年齢、作成日を持たせます。

Step 2: 練習データを入れる

少ない件数で結果を見やすくします。

INSERT INTO users (id, name, email, active, age, created_at) VALUES
  (1, 'Sato', 'sato@example.com', true, 18, '2026-01-10'),
  (2, 'Suzuki', 'suzuki@example.com', true, 22, '2026-02-15'),
  (3, 'Tanaka', 'tanaka@example.com', false, 17, '2025-12-20'),
  (4, 'Yamada', 'yamada@example.com', true, 31, '2026-03-01'),
  (5, 'Kato', 'kato@example.com', false, 25, '2026-01-25');

Step 3: 全件を取得する

まずは、テーブル全体を確認します。

SELECT *
FROM users;

目的は、入れたデータが想定通りに入っているか確認することです。

Step 4: 必要な列だけ取得する

すべての列ではなく、必要な列だけを指定します。

SELECT id, name, email
FROM users;

実務では、まず必要な列だけをSELECTする癖を付けると、SQLの意図が読みやすくなります。

Step 5: WHEREで絞り込む

アクティブなユーザーだけを取得します。

SELECT id, name, active
FROM users
WHERE active = true;

年齢で絞り込むこともできます。

SELECT id, name, age
FROM users
WHERE age >= 20;

Step 6: 複数条件で絞る

AND を使うと、両方の条件を満たす行だけを取得します。

SELECT id, name, active, age
FROM users
WHERE active = true
  AND age >= 20;

OR を使うと、どちらかの条件を満たす行を取得します。

SELECT id, name, active, age
FROM users
WHERE active = false
   OR age < 20;

Step 7: ORDER BYで並び替える

作成日が新しい順に並べます。

SELECT id, name, created_at
FROM users
ORDER BY created_at DESC;

年齢が若い順にするなら ASC を使います。

SELECT id, name, age
FROM users
ORDER BY age ASC;

Step 8: LIMITで件数を制限する

新しいユーザーを3件だけ取得します。

SELECT id, name, created_at
FROM users
ORDER BY created_at DESC
LIMIT 3;

LIMITだけでは「新しい順」にはなりません。必ずORDER BYとセットで考えます。

よくあるエラー

エラーよくある原因確認すること
relation does not existテーブル名が違うusers を作成済みか
column does not exist列名のタイプミスSELECT の列名を確認
結果が0件WHERE 条件が厳しすぎる条件を1つずつ外す
並び順が想定と違うORDER BY がない並び替え条件を明示する

まとめ

SELECT は列を選び、FROM は対象テーブルを決め、WHERE は行を絞り、ORDER BY は並び替え、LIMIT は件数を制限します。最初は小さなテーブルで、条件を1つずつ足しながら結果を確認すると理解しやすいです。

参考リソース

← 一覧に戻る
PR
PR
PR
PR