開発ツール

SQLフォーマッターの使い方・クエリを整形する方法

SQLクエリは書いているうちに長く複雑になりがちです。整形されていないSQLは読みにくく、バグの原因にもなります。この記事では、SQLフォーマッターを使ってクエリを読みやすく整形する方法と、整形のベストプラクティスを解説します。

SQLの整形とは

SQLの整形(フォーマット)とは、キーワードの大文字化、適切な改行・インデントの追加によってクエリの可読性を向上させることです。特にチーム開発では、統一されたフォーマットがコードレビューの効率を大幅に改善します。

整形前と整形後の比較

整形前

select u.id, u.name, u.email, o.order_id, o.total from users u inner join orders o on u.id = o.user_id where u.status = 'active' and o.created_at >= '2025-01-01' order by o.total desc limit 10;

整形後

SELECT
    u.id,
    u.name,
    u.email,
    o.order_id,
    o.total
FROM
    users u
    INNER JOIN orders o ON u.id = o.user_id
WHERE
    u.status = 'active'
    AND o.created_at >= '2025-01-01'
ORDER BY
    o.total DESC
LIMIT 10;

SQLフォーマットの基本ルール

  • キーワードは大文字SELECTFROMWHEREなどのSQLキーワードは大文字にする
  • 主要句で改行:SELECT、FROM、WHERE、ORDER BY、GROUP BYなどの主要句は新しい行に配置する
  • カラム名はインデント:SELECTの各カラム、WHERE条件はインデントして一覧性を高める
  • JOINは明示的に:暗黙のJOIN(カンマ区切り)よりINNER JOINLEFT JOINを使う

整形が重要な3つの理由

1. バグの早期発見

整形されたSQLはWHERE条件やJOIN条件が一目で分かり、論理的なミスを見つけやすくなります。

2. コードレビューの効率化

統一されたフォーマットにより、レビュアーがクエリの意図を素早く把握できます。

3. メンテナンス性の向上

後から条件を追加・変更する際に、どこを修正すべきか明確になります。

サブクエリの整形

SELECT
    u.name,
    u.email,
    (
        SELECT COUNT(*)
        FROM orders o
        WHERE o.user_id = u.id
    ) AS order_count
FROM
    users u
WHERE
    u.created_at >= '2025-01-01';

サブクエリは括弧で囲み、内部をさらにインデントして階層構造を明確にします。

よくある質問

SQLキーワードは大文字・小文字どちらが正しいですか?

SQL自体は大文字小文字を区別しませんが、慣習としてキーワードは大文字、テーブル名・カラム名は小文字が一般的です。

整形するとクエリの動作に影響しますか?

いいえ。整形は見た目のみの変更で、クエリの実行結果やパフォーマンスに影響はありません。

どのデータベースに対応していますか?

当ツールはMySQL、PostgreSQL、SQLite、SQL Server、Oracleなど主要なSQLデータベースの構文に対応しています。

SQLフォーマッターを使ってみる

SQLクエリをワンクリックで美しく整形。ブラウザ上で動作、インストール不要。

ツールを開く →