🗄 SQL整形(フォーマッタ)
SQLを読みやすくインデント整形、または1行に圧縮します。キーワードの大文字化やインデント幅も選べます。処理はすべてブラウザ内で完結し、貼り付けたSQLは送信されません。
入力
結果
※ 簡易フォーマッタです。方言や複雑なSQLでは崩れることがあります。入力はブラウザ内だけで処理され、サーバーには送信されません。
解説
SQLは書き方が自由なぶん、1行に詰まっていたり改行やインデントが不揃いだったりすると、SELECT・FROM・WHEREといった節の区切りが読み取りにくくなります。本ツールは、貼り付けたSQLの主要キーワードの前で改行し、節ごとに行を分けて、SELECTのカラムやカンマ区切りをインデントして表示することで、構造をひと目で把握できるように整えます。逆に、余分な空白・改行を取り除いて1行にまとめる「圧縮(1行化)」もでき、コードやログにSQLを埋め込みたいときに便利です。
整形では、SELECT / FROM / WHERE / AND / OR / JOIN(LEFT JOIN・INNER JOIN など)/ ON / GROUP BY / ORDER BY / HAVING / LIMIT / INSERT INTO / VALUES / UPDATE / SET / DELETE FROM / UNION といった主要キーワードを認識し、その前で改行します。例えば『select id,name from users where age>20 and active=1 order by id』を整形すると、SELECT・FROM・WHERE・AND・ORDER BY がそれぞれ行の先頭に来て、カラムや条件が段下げされた読みやすい形になります。
キーワードの大文字化をオンにすると、SELECTやWHEREなどの予約語だけを大文字に統一します。テーブル名・カラム名などの識別子や、文字列リテラルの中身は変更しないので、意味を変えずに見た目だけを整えられます。インデントはスペース2個・スペース4個・タブから選べ、プロジェクトのコーディング規約に合わせられます。
本ツールは文字列やコメントの扱いを丁寧に実装しています。シングルクオートの文字列(例: 'from tokyo')、ダブルクオートやバッククオートで囲んだ識別子、-- で始まる行コメント、/* */ のブロックコメントの中身は、キーワードのように見えても大文字化や改行の対象にせず、そのまま保持します。これにより、整形によってSQLの意味が変わってしまう事故を避けています。
処理はすべてお使いのブラウザ内(JavaScript)で行われ、入力したSQLはサーバーへ送信されません。機密性の高いクエリでも安心して貼り付けられ、オフラインでも動作します。ただし、これは軽量な簡易フォーマッタです。標準的なSQLはうまく整いますが、方言特有の構文や、ネストの深いサブクエリ、非常に複雑なSQLでは整形が崩れることがあります。あくまで見やすくするための補助としてご利用ください。
よくある質問
SQLの整形(フォーマット)とは何ですか?
1行に詰まったSQLや不揃いなSQLに、改行とインデントを付けて節(SELECT・FROM・WHEREなど)ごとに整理し、読みやすくすることです。本ツールでは主要キーワードの前で改行し、SELECTのカラムやカンマ区切りは行を分けて表示します。
圧縮(1行化)とは何ですか?
余分な空白や改行を取り除いてSQLを1行にまとめる処理です。ログやコード内の1行文字列にSQLを収めたいときに使います。文字列リテラルの中身はそのまま保持します。
入力したSQLはサーバーに送られますか?
送られません。整形・圧縮はすべてお使いのブラウザ内(JavaScript)で処理され、SQLはどこにも送信されません。オフラインでも動作します。
文字列やコメントの中のキーワードも変換されますか?
変換しません。シングルクオートの文字列、ダブルクオートやバッククオートの識別子、-- 行コメント、/* */ ブロックコメントの中身は、大文字化も改行もせずそのまま保持します。
どんなSQLでも正しく整形できますか?
本ツールは軽量な簡易フォーマッタです。標準的なSELECT/INSERT/UPDATE/DELETEはうまく整形できますが、方言特有の構文や非常に複雑なSQL、ネストの深いサブクエリでは崩れることがあります。あくまで見やすくする補助としてご利用ください。
キーワードの大文字化はどこに効きますか?
SELECTやWHEREなどの予約語(キーワード)だけを大文字にします。テーブル名・カラム名などの識別子や、文字列リテラルの中身は変更しません。オフにすれば元の大文字小文字のまま整形します。
インデントは変えられますか?
はい。インデントはスペース2個・スペース4個・タブから選べます。整形モードのときに切り替えると、その幅で整形し直されます。