SQL の整形と圧縮
整形処理はすべてブラウザ内で完結します。データは送信されません
1行に詰まった SQL を句ごとに行を分けた構造へ展開します。各句はそれぞれ別の行から始まり、本文はその下に1段インデントされます。AND / OR と JOIN / ON はそれぞれ別の行にし、括弧の中がサブクエリならさらに1段深く、閉じ ) は元の階層に戻します。キーワードは大文字・小文字・そのままから選べ、識別子と引用符で囲まれた内容は決して変更しません。文字列・コメント・バッククォートと角括弧の識別子・Postgres のドル引用の内部は構造判断に加わらないので、文字列の中のセミコロンが1つの文を真っ二つに切ることはありません。
機能
- 句ごとに改行:SELECT / FROM / WHERE / GROUP BY / ORDER BY / HAVING / LIMIT / VALUES / SET / RETURNING など
- AND / OR / JOIN / ON がそれぞれ別の行になり、条件が多いときも境界が一目で分かります
- 括弧の中がサブクエリならブロックとして展開し、閉じ ) は句の本文の階層に戻します
- 関数呼び出しの括弧はインラインのまま。COUNT(*) が分割されることはありません
- キーワードは大文字・小文字・そのままを選べます。識別子と文字列は常にそのまま保持します
- 文字列・コメント・バッククォートと角括弧の識別子・Postgres のドル引用の内部は構造判断に加わりません
- 圧縮モードはコメントと余分な空白を削除し、- -1 を --1 に繋げません(コメント化して後半が丸ごと無効になるため)
- 構文チェックはしません:不正な SQL もエラーにせず、できる範囲でインデントします
使い方
- SQL を入力欄に貼り付けます
- 処理方法・インデント・キーワードの大文字小文字を選びます
- Ctrl/⌘ + Enter を押すか「実行」をクリックします
- 「コピー」で結果を取り出せます
よくある質問
- SQL の構文は検証されますか?
- いいえ。このツールは空白とキーワードの大文字小文字を並べ替えるだけで、構文解析はしません。書き間違えた SQL もそのまま整形されて出力されます。動く文を読みやすくするためのものであって、データベースのエラーメッセージの代わりではありません。
- 圧縮モードでコメントまで消えるのはなぜですか?
- 行コメントを同じ行に詰めると、その後の文が丸ごとコメントアウトされてしまうのに、出力はまったく正常に見えます。いつコードを食べてしまうか分からないコメントを残すより、まとめて削除するほうが安全です。コメントを残したいときは整形モードをお使いください。
- どのデータベースの方言に対応していますか?
- キーワード表は一般的な SQL に合わせて整えつつ、MySQL の # コメントとバッククォート、SQL Server の角括弧識別子、Postgres の $$ ドル引用と :: キャストにも配慮しています。整形そのものは方言に依存しません。
- SQL は送信されますか?
- いいえ。処理はすべてブラウザのメモリ内で完結し、ページはリクエストを一切送りません。オフラインでも使えます。
関連ツール
JSON → コード
整形JSON サンプルから TypeScript interface、Go struct、Java class、Rust struct を生成。欠けたキーは任意に、型の衝突は共用型に。すべてブラウザ内で処理します。
モックデータ
生成「フィールド名:型」を数行書くだけで、形式が本物そっくりのモックデータをまとめて生成。JSON・CSV・SQL で出力でき、すべてブラウザ内で処理します。
テキスト整形
テキスト処理ログや表からコピーした1列を整形します。重複行の削除、並べ替え、空行・前後の空白・行番号の削除、空白のまとめを個別に切り替えできます。
JSON 整形
整形JSON をオンラインで整形・圧縮し、構文エラーは行・列まで特定。キー名の再帰的な並べ替えにも対応。解析はすべてブラウザ内で行い、送信しません。
XML 整形
整形XML をオンラインで整形・圧縮:タグの階層ごとにインデントし、コメント・CDATA・DOCTYPE はそれぞれ別の行に。属性値の中の空白はそのまま保持します。
HTML 整形
整形HTML をオンラインで整形・圧縮:タグの階層ごとにインデントし、テキストとインライン要素は同じ行のまま。script と pre の中身はそのまま保持します。