読みにくい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行に圧縮するときは -- コメントを /* */ に置きかえます。どの方言にも完全には対応していないので、実行前に結果を確認してください。入力はブラウザの中だけで処理され、送信されません。
1行に詰まったSQLや読みにくいSQLを、句ごとに改行・インデントして見やすく整えます。逆に1行に圧縮することもでき、コードレビューやドキュメントへの貼り付け、ログに出たSQLの確認に使えます。
壊れません。自作のトークナイザで引用符の中を1つの文字列として扱うので、'%-- 例%' のような文字列はそのまま残ります。「サンプル」を押すと、文字列の中に -- を含む例で確かめられます。
SELECTやFROMなどの予約語と、COUNT・SUMなどのよく使う関数名だけを変えます。ただしDATEやTEXTなど予約語と同じ名前の列はキーワードとして扱われることがあります。「キーワード」で「そのまま」を選べば元の大文字・小文字を残せます。
括弧の中がSELECTで始まる場合、括弧のあとで改行し、中身を1段深くインデントして、閉じ括弧を元の深さに戻します。IN (1, 2, 3) のような括弧は1行のままです。
-- コメントは行末までがコメントなので、1行にすると後ろのSQLまでコメントになってしまいます。そのため /* */ 形式に置きかえて残します。