SQL整形

このツールでできること

SQL文をキーワード(SELECT・FROM・WHERE・JOIN・GROUP BY・ORDER BY など)で改行して読みやすく整形するツールです。SELECT の各カラム、WHERE の各条件、JOIN の各結合を揃えて表示します。キーワードの大文字/小文字変換にも対応しています。

特徴

  • 主要キーワードで自動改行 — SELECT/FROM/WHERE/JOIN/LEFT JOIN/GROUP BY/ORDER BY/HAVING/LIMIT/UNION など。
  • SELECT句のカラム改行 — カンマ区切りのカラムを1行ずつに展開します。
  • サブクエリのインデント — 括弧で括られたサブクエリは階層的にインデントされます。
  • キーワードの大文字/小文字切替 — プロジェクト規約に合わせて一括変換。

使い方

  1. 左側の入力欄にSQL文を貼り付けます。
  2. キーワードの大文字/小文字、インデント幅を選択します。
  3. 「整形」ボタンを押すと右側に結果が表示されます。

対応SQL

MySQL・PostgreSQL・SQL Server・SQLite・Oracle など主要な RDBMS の標準SQLに幅広く対応しています。各製品固有の拡張構文(PostgreSQL の RETURNING、MySQL の ON DUPLICATE KEY UPDATE など)は概ね通りますが、完璧な整形は保証しません。

こんなときに使えます

  • コードレビュー — ORMが生成する長大な SQL を整形してロジック確認。
  • ログ解析 — アプリケーションログに出力された1行SQL を可読化。
  • パフォーマンス分析EXPLAIN の対象クエリを読みやすくして JOIN やサブクエリを把握。
  • ドキュメント作成 — 設計書・障害報告書に SQL を載せるとき。
  • 新人エンジニア教育 — クエリの構造を視覚的に説明。
  • BI ツール — Metabase・Redash で書いた複雑なクエリの整形。
  • マイグレーション確認 — DBスキーマ変更の SQL レビュー。

整形前と整形後の例

整形前:
SELECT u.id, u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at > '2025-01-01' GROUP BY u.id, u.name ORDER BY order_count DESC LIMIT 10;

整形後:

SELECT
  u.id,
  u.name,
  COUNT(o.id) as order_count
FROM users u
  LEFT JOIN orders o
  ON u.id = o.user_id
WHERE u.created_at > '2025-01-01'
GROUP BY u.id, u.name
ORDER BY order_count DESC
LIMIT 10;

よくある質問

ストアドプロシージャも整形できますか?
BEGIN〜END ブロックや DECLARE などの手続き構文は簡易整形のみとなります。複雑なストアドには専用のIDEをおすすめします。
整形された結果で動作が変わることはありますか?
整形は空白・改行の追加のみで、トークン自体は変更しません。キーワードの大文字/小文字変換もSQL文法上は同等です。
コメントは保持されますか?
はい。-- の行コメント、/* */ のブロックコメントは保持されます。
CTE(WITH 句)は?
WITH 句を含む CTE(Common Table Expression)もトップレベルキーワードとして改行されます。複雑な再帰 CTE の場合は目視での微調整が必要になることがあります。
複数のクエリをまとめて整形できますか?
; で区切られた複数のクエリも処理可能ですが、各クエリの境界を意識した改行は入らないため、クエリごとに分けて整形することを推奨します。
日本語のテーブル名・カラム名は扱えますか?
はい。バッククォート・ダブルクォート・角括弧で囲まれた識別子はそのまま保持されます。
NoSQL の MongoDB クエリには対応していますか?
いいえ。本ツールは SQL 専用です。MongoDB のクエリは JSON 形式のため、「JSON整形」ツールをご利用ください。