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行ずつに展開します。
- サブクエリのインデント — 括弧で括られたサブクエリは階層的にインデントされます。
- キーワードの大文字/小文字切替 — プロジェクト規約に合わせて一括変換。
使い方
- 左側の入力欄にSQL文を貼り付けます。
- キーワードの大文字/小文字、インデント幅を選択します。
- 「整形」ボタンを押すと右側に結果が表示されます。
対応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整形」ツールをご利用ください。