SQL チートシート
データを問い合わせ・変更するコア SQL 文をタスク別にまとめました。正確な構文はデータベース(PostgreSQL、MySQL、SQLite、SQL Server)ごとに少しずつ異なりますが、以下の基本はほぼどこでも通用します。散らかったクエリを整えるには SQL フォーマッター を使ってください。
更新 2026-07-06
クエリ(SELECT)
| 文 | 役割 |
|---|---|
| SELECT * FROM t | テーブル t のすべての列と行を返す |
| SELECT a, b FROM t | 列 a, b だけを返す |
| SELECT DISTINCT a FROM t | a のユニークな値を返す |
| ... WHERE a = 5 | a が 5 の行をフィルタ |
| ... ORDER BY a DESC | a を降順でソート |
| ... LIMIT 10 | 最大 10 行を返す |
| ... OFFSET 20 | 最初の 20 行をスキップ(ページング) |
| SELECT COUNT(*) FROM t | 行数を数える |
| SELECT SUM(a), AVG(a) FROM t | 集計: a の合計と平均 |
| ... GROUP BY category | カテゴリごとに行をまとめて集計 |
| ... HAVING COUNT(*) > 5 | グループをフィルタ(集計用 WHERE) |
フィルタ(WHERE)
| 文 | 役割 |
|---|---|
| WHERE a IN (1, 2, 3) | リスト内の値のいずれかに一致 |
| WHERE a BETWEEN 1 AND 9 | 範囲に一致(両端を含む) |
| WHERE name LIKE 'A%' | パターン一致: A で始まる(% = 任意の文字) |
| WHERE name LIKE '_at' | _ はちょうど 1 文字に一致 |
| WHERE a IS NULL | a に値がない行に一致 |
| WHERE a > 5 AND b < 10 | AND / OR で条件を結合 |
テーブルの結合
| 文 | 役割 |
|---|---|
| INNER JOIN u ON t.id = u.tid | 両方のテーブルに一致がある行 |
| LEFT JOIN u ON t.id = u.tid | 左テーブルのすべての行(一致の有無を問わず) |
| RIGHT JOIN u ON t.id = u.tid | 右テーブルのすべての行 |
| FULL JOIN u ON t.id = u.tid | 両方のテーブルのすべての行 |
データの変更
| 文 | 役割 |
|---|---|
| INSERT INTO t (a, b) VALUES (1, 2) | 新しい行を追加 |
| UPDATE t SET a = 5 WHERE id = 1 | 既存の行を変更(WHERE に注意!) |
| DELETE FROM t WHERE id = 1 | 行を削除(WHERE に注意!) |
スキーマ(テーブル & インデックス)
| 文 | 役割 |
|---|---|
| CREATE TABLE t (id INT, name TEXT) | 新しいテーブルを作成 |
| ALTER TABLE t ADD col TEXT | 列を追加 |
| DROP TABLE t | テーブルとそのすべてのデータを削除 |
| CREATE INDEX idx ON t (a) | a の検索を速くするインデックスを追加 |
守る価値のある安全習慣: UPDATE や DELETE の WHERE 句を先に書きましょう。WHERE なしで実行すると、テーブルのすべての行が変更・削除されます。
関連ツール