🌐 JA

🗄️ SQL整形ツール

SQLクエリを句(clause)ごとに改行・インデントして読みやすく整形します。逆に、ログ送信や保存用に1行へ圧縮(minify)することもできます。キーワードの大文字変換は任意です。

ガイド

詳しく見る

01

1. SQLを整形する理由

1行で書かれたSQLやORMが生成したSQLは、結合(JOIN)が増えるほど読みにくくなります。句(SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BYなど)ごとに改行してインデントを揃えると、どのテーブルをどの条件で結合しているか、WHERE条件は何かが一目で把握でき、コードレビューやデバッグが速くなります。

02

2. このツールの整形ルール

SELECT/FROM/WHERE/JOIN系/GROUP BY/ORDER BY/HAVING/LIMITなどの主要な句の前で改行し、AND/ORは1段階インデントして条件を区別します。カンマ区切りのカラムリストはそれぞれ新しい行に整列され、括弧内の内容(サブクエリなど)にはさらに1段階のインデントが追加されます。このツールは完全なSQLパーサーではなくトークンベースの整形ツールのため、非常に複雑にネストしたサブクエリやベンダー固有の構文は、結果を確認のうえ手動で微調整することをおすすめします。

03

3. Minifyとその使いどころ

圧縮(minify)はコメントを削除し、不要な空白・改行をなくして1行にまとめます。ログにクエリを残したり、ストアドプロシージャ・マイグレーションスクリプトのサイズを縮小したり、他のツールに貼り付けるために1行が必要な場合に便利です。文字列リテラル(引用符で囲まれた値)の内容はそのまま保持されるため、データの値が壊れることはありません。

よくある質問

すべてのSQL方言(MySQL、PostgreSQL、Oracleなど)に対応していますか?
完全なSQLパーサーではなく、共通のキーワードを認識するトークンベースの整形ツールです。SELECT/INSERT/UPDATE/DELETE/CREATE TABLEなどほとんどの標準SQLと一般的な結合構文には対応していますが、ベンダー固有の拡張構文は整形ルールから外れる場合があります。
文字列内のSQLキーワードも大文字に変換されますか?
いいえ。引用符('...'、"..."、`...`)で囲まれた文字列リテラルはトークン化の段階で別途認識され、大文字小文字変換や改行処理の対象外となります。
入力したクエリはサーバーに送信されますか?
いいえ。整形・圧縮どちらもブラウザ内だけで処理され、サーバーには送信されません。
インデント幅を変更できますか?
はい。インデントの選択メニューから2スペースまたは4スペースを選べます。