SQLで最初に覚える中心は SELECT です。SELECT はデータを取得する命令ですが、実際には FROM、WHERE、ORDER BY、LIMIT と組み合わせて使います。
一言でいうと
SELECT文は「どの表から、どの行を、どの列だけ、どの順番で、何件取るか」を書く命令です。
基本形
まずは、次の形を覚えます。
SELECT id, name, email
FROM users
WHERE active = true
ORDER BY created_at DESC
LIMIT 10;
各句の役割は次の通りです。
| 句 | 役割 |
|---|---|
SELECT | 表示する列を決める |
FROM | 対象テーブルを決める |
WHERE | 行を条件で絞る |
ORDER BY | 並び順を決める |
LIMIT | 取得件数を制限する |
読む順番
SQLは書かれている順番のまま読むと、少しわかりにくいです。初心者のうちは次の順番で読むと理解しやすくなります。
| 読む順番 | 見る場所 | 考えること |
|---|---|---|
| 1 | FROM | どのテーブルを見るか |
| 2 | WHERE | どの行に絞るか |
| 3 | SELECT | どの列を表示するか |
| 4 | ORDER BY | どう並べるか |
| 5 | LIMIT | 何件まで出すか |
SQLを読むときは、まずFROMを見て「どの表の話か」を確認します。
SELECTは列を選ぶ
SELECT には、取得したい列を書きます。
SELECT name, email
FROM users;
SELECT * はすべての列を取得します。
SELECT *
FROM users;
学習中は便利ですが、実務では必要な列だけを指定する方が読みやすく、無駄なデータ取得も減らせます。
WHEREは行を絞る
WHERE は、条件に合う行だけを残します。
SELECT id, name
FROM users
WHERE active = true;
複数条件も書けます。
SELECT id, name
FROM users
WHERE active = true
AND created_at >= '2026-01-01';
ここでは、アクティブで、かつ2026年以降に作成されたユーザーだけを取得します。
ORDER BYは並び替える
ORDER BY は結果の表示順を決めます。
SELECT id, name, created_at
FROM users
ORDER BY created_at DESC;
| 指定 | 意味 |
|---|---|
ASC | 昇順、小さい順、古い順 |
DESC | 降順、大きい順、新しい順 |
LIMITは件数を制限する
LIMIT は、取得する件数を制限します。
SELECT id, name
FROM users
ORDER BY created_at DESC
LIMIT 5;
このSQLは、新しいユーザーを5件だけ取得します。
大量データを確認するときは、まずLIMITを付けて少ない件数で見るのが安全です。
よくある誤解
| 誤解 | 実際 |
|---|---|
SELECT が最初に処理される | 理解上は FROM や WHERE を先に考えると読みやすいです |
WHERE は列を選ぶもの | WHERE は行を絞るものです |
ORDER BY なしでも順番は決まる | 明示しない限り順番は保証されません |
LIMIT だけで最新順になる | 最新順にしたいなら ORDER BY が必要です |
まとめ
SELECT文は、対象テーブル、絞り込み条件、表示列、並び順、件数制限を組み合わせてデータを読む命令です。初心者のうちは FROM、WHERE、SELECT、ORDER BY、LIMIT の順に意味を確認すると読みやすくなります。