SQL整形ツール

読みにくいSQLを、句ごとに改行・インデントして見やすく整えます。逆に1行に圧縮することもできます。文字列やコメントの中身は変えません。

改行するのは SELECT FROM WHERE GROUP BY HAVING ORDER BY LIMIT UNION INSERT INTO VALUES UPDATE SET WITH などの句と、各種 JOIN、AND・OR、句の中のカンマです。BETWEEN … AND … と、関数・IN (…) などの括弧の中は改行しません。括弧の中が SELECT で始まるサブクエリは1段深くインデントします。

'文字列'('' のエスケープ)、"識別子"、`識別子`、[識別子]、$$…$$、-- コメント、/* コメント */ は中身をそのまま残します。1行に圧縮するときは -- コメントを /* */ に置きかえます。どの方言にも完全には対応していないので、実行前に結果を確認してください。入力はブラウザの中だけで処理され、送信されません。

SQL整形ツールでできること

1行に詰まったSQLや読みにくいSQLを、句ごとに改行・インデントして見やすく整えます。逆に1行に圧縮することもでき、コードレビューやドキュメントへの貼り付け、ログに出たSQLの確認に使えます。

使い方

  1. 「入力SQL」にSQLを貼り付けます。入力すると自動で「結果」に整形されたSQLが出ます。
  2. 「キーワード」で大文字・小文字・そのままを、「インデント」でスペース2・スペース4・タブを選びます。
  3. 1行にまとめたいときは「1行に圧縮」、整形に戻すときは「整形する」を押します。
  4. 「結果をコピー」で結果をクリップボードにコピーします。「入力を消す」は2回押すと入力が消えます。

計算の仕組みと注意点

よくある質問

文字列の中の -- や改行が壊れませんか?

壊れません。自作のトークナイザで引用符の中を1つの文字列として扱うので、'%-- 例%' のような文字列はそのまま残ります。「サンプル」を押すと、文字列の中に -- を含む例で確かめられます。

キーワードを大文字にすると列名も大文字になりますか?

SELECTやFROMなどの予約語と、COUNT・SUMなどのよく使う関数名だけを変えます。ただしDATEやTEXTなど予約語と同じ名前の列はキーワードとして扱われることがあります。「キーワード」で「そのまま」を選べば元の大文字・小文字を残せます。

サブクエリはどう整形されますか?

括弧の中がSELECTで始まる場合、括弧のあとで改行し、中身を1段深くインデントして、閉じ括弧を元の深さに戻します。IN (1, 2, 3) のような括弧は1行のままです。

1行に圧縮するとコメントはどうなりますか?

-- コメントは行末までがコメントなので、1行にすると後ろのSQLまでコメントになってしまいます。そのため /* */ 形式に置きかえて残します。