RUNWEBTOOLS
日本語

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 ta のユニークな値を返す
... WHERE a = 5a が 5 の行をフィルタ
... ORDER BY a DESCa を降順でソート
... 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 NULLa に値がない行に一致
WHERE a > 5 AND b < 10AND / 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 の検索を速くするインデックスを追加

守る価値のある安全習慣: UPDATEDELETEWHERE 句を先に書きましょう。WHERE なしで実行すると、テーブルのすべての行が変更・削除されます。

関連ツール