やりたいことから見つかる

SQL逆引き辞典

必要なデータを取り出す、まとめる、表を結び付ける。目的別のSQLと結果の例を確認できます。

カテゴリで絞り込む

20件

基本取得・表示

必要な列を取り出したい

SELECT に表示したい列、FROM に読み取るテーブルを書きます。

SELECT name, salary
例と使い方を見る
基本条件で絞る

条件に合う行だけ取り出したい

WHERE の後に条件を書き、一致する行だけに絞ります。

SELECT name, salary
例と使い方を見る
基本条件で絞る

複数の条件をすべて満たす行を探したい

AND は、両方の条件が真となる行を残します。

SELECT name, salary
例と使い方を見る
基本条件で絞る

いずれかの条件に合う行を探したい

OR は、少なくとも一方の条件が真となる行を残します。

SELECT name, salary
例と使い方を見る
基本条件で絞る

IN・NOT INで候補を含める・除外したい

INは候補に一致する行、NOT INは候補から外れる行を探します。除外リストや比較する列にNULLがある場合は、結果が変わる点に注意します。

SELECT name, department_id
例と使い方を見る
基本条件で絞る

数値の範囲で絞りたい

BETWEEN は下限以上、上限以下の範囲に絞ります。

SELECT name, salary
例と使い方を見る
基本条件で絞る

文字列の一部で検索したい

LIKEは文字列を前方一致・後方一致・部分一致で検索します。%を置く位置によって、先頭・末尾・途中のどこを探すかが変わります。

SELECT name
例と使い方を見る
基本条件で絞る

IS NULL・IS NOT NULLで未設定の値を調べたい

部署が未設定なら IS NULL、設定済みなら IS NOT NULL を使います。同じ社員6行から取り出す結果を比べます。

SELECT name, department_id
例と使い方を見る
基本並べ替え・件数

大きい順・小さい順に並べたい

ORDER BY で並び順を指定します。DESC は降順、ASC は昇順です。

SELECT name, salary
例と使い方を見る
基本並べ替え・件数

上位の数件だけ表示したい

LIMIT で取得する行数の上限を指定します。

SELECT name, salary
例と使い方を見る
基本集計する

行数を数えたい

COUNT(*) は全行を数え、COUNT(列) はその列が NULL でない行を数えます。

SELECT COUNT(*) AS employee_count,
例と使い方を見る
基本集計する

数値の合計を求めたい

SUM は NULL を除いた数値の合計を返します。

SELECT SUM(salary) AS total_salary
例と使い方を見る
基本集計する

平均を求めたい

AVG は NULL を除いた値の平均を返します。

SELECT AVG(salary) AS average_salary
例と使い方を見る
基本集計する

グループごとに集計したい

GROUP BY は同じ値をひとまとめにして集計します。

SELECT department_id, COUNT(*) AS employee_count
例と使い方を見る
基本集計する

集計結果を条件で絞りたい

HAVING は集計後のグループを絞ります。まず社員が2人以上いる部署を探し、続いてWHEREで集計対象を変えた場合を3段階の表で比べます。

SELECT department_id, COUNT(*) AS employee_count
例と使い方を見る
基本結合・加工

一致するデータを別テーブルから取りたい

INNER JOIN は結合条件に一致する組み合わせを取得します。

SELECT e.name AS employee_name,
例と使い方を見る
基本結合・加工

対応がない行も残して結合したい

LEFT JOIN は左側のテーブルの行を残し、一致した右側の情報を付けます。

SELECT e.name AS employee_name,
例と使い方を見る
基本取得・表示

重複を除いて一覧にしたい

DISTINCT は選んだ列の組み合わせが同じ行を1つにまとめます。

SELECT DISTINCT department_id
例と使い方を見る
基本結合・加工

条件に応じて表示内容を変えたい

CASE は上から条件を調べ、最初に真となった条件の値を返します。

SELECT name,
例と使い方を見る
基本取得・表示

結果の列名をわかりやすくしたい

AS は結果の列に別名を付けます。集計や計算の結果に名前を付ける際にも便利です。

SELECT name AS employee_name,
例と使い方を見る

はじめてでも大丈夫

試す前に

PostgreSQLの構文を基準にしています。MySQL・SQL Server・SQLiteなどでは、一部の構文や挙動が異なります。

練習用のデータベースとSQLエディタを用意します。各解説は共通のサンプル表を使います。実際の業務データで試す前に、表名・列名を確認してください。

掲載例はデータを読むSELECT文です。大きな表の検索・集計には負荷がかかることがあります。許可された検証環境で試してください。