この記事に関連するツール
ブラウザ上ですぐに試せます。記事の内容を確認しながら使うと、作業の流れをつかみやすくなります。

「このクエリ、密すぎて読めない……」
運用中のシステムから吐き出された、一行に固まった巨大な SQL。
あるいは、複雑な JOIN が何層にも重なって迷宮のようになったストアドプロシージャ。
「どこで条件が分岐しているの?」「この括弧、どこで閉じてる?」と、画面を睨みつけたことはありませんか?
コードが汚いと、ミスも増えます。そして何より、開発のモチベーションが削がれてしまいますよね。
魔法のように、SQL に「呼吸」をさせる
そんな溜まったストレスを、一瞬で解消するために。
SQLフォーマッター は、あなたの書いた(あるいはどこかからコピーしてきた)SQL を、誰が見ても美しい構造へと書き換えます。
インデントを整え、予約語を際立たせ、複雑なクエリに「読みやすさ」という命を吹き込みます。
PostgreSQL, MySQL, BigQuery など、主要なデータベースの構文(ダイアレクト)に合わせた最適な整形が可能です。
SQLを整形する手順
ログやDBクライアントからコピーしたSQLは、改行やインデントが崩れていることがよくあります。
まずはそのまま貼り付けて、整形結果を確認しましょう。
- 整形したいSQLをコピーする。
- SQLフォーマッター に貼り付ける。
- PostgreSQL、MySQL、BigQueryなど、利用しているSQL方言を選ぶ。
- インデントや大文字小文字のスタイルを確認する。
- 整形後のSQLをレビュー、調査、ドキュメントに使う。
たとえば次のような一行SQLがあるとします。
select users.id,users.name,count(orders.id) from users left join orders on users.id=orders.user_id where users.deleted_at is null group by users.id,users.name order by users.id desc;
整形すると、JOIN、WHERE、GROUP BY、ORDER BYの境界が見えやすくなります。
SELECT
users.id,
users.name,
COUNT(orders.id)
FROM users
LEFT JOIN orders ON users.id = orders.user_id
WHERE users.deleted_at IS NULL
GROUP BY
users.id,
users.name
ORDER BY users.id DESC;
見た目が整うだけで、条件の抜け、JOINの向き、集計単位の誤りに気づきやすくなります。
SQLレビューで見るべきポイント
SQLを整形したあとは、次の点を確認するとレビューの質が上がります。
WHERE条件が意図通りかJOINの条件が不足していないかLEFT JOINとINNER JOINの使い分けが正しいかGROUP BYの粒度が期待通りかORDER BYやLIMITが必要な場面で指定されているか- サブクエリやCTEの責務が分かりやすいか
とくにログから拾ったSQLは、プレースホルダーが展開済みで長くなりがちです。
整形してから読むだけで、調査時間をかなり減らせます。
「セキュリティ」という、譲れないこだわり
外部の整形サイトを使うとき、一番不安なのは「このクエリ、サーバーに保存されてないかな?」ということではないでしょうか。
顧客データに関わるクエリや、機密性の高いロジックが含まれている場合、それは重大なリスクになります。
DevToolKits のフォーマッターは、「すべての整形をあなたのブラウザの中だけで」 行います。
ネットワーク通信は一切発生しません。クエリの中身が、あなたの PC の外に出ることはありません。プロフェッショナルな現場でも、安心して使い倒してください。
よくある質問
MySQLやPostgreSQLのSQLに対応していますか?
はい。主要なSQL方言に合わせて整形できます。
完全に方言固有の構文が含まれる場合は、整形後に実行前の確認を行ってください。
整形するとSQLの意味は変わりますか?
通常、整形は空白、改行、インデント、大文字小文字を調整する処理です。
ただし、実行前には必ず元のSQLと意図が変わっていないか確認するのが安全です。
機密データを含むSQLを貼っても大丈夫ですか?
DevToolKitsではブラウザ内で整形します。
それでも社内ルールがある場合は、顧客名やトークンなどをマスクしてから使うとより安心です。
まとめ
美しい SQL は、美しいデータベース設計の第一歩です。
「とりあえず動く」から「誰もがひと目で理解できる」へ。
ツールの力で、あなたのクエリをもっと誇れるものに変えていきましょう。デバッグの時間も、きっと半分になるはずです。