SQL整形・クエリフォーマッター
崩れたSQLをsql-formatterライブラリで自動整形するツールです。Standard SQL・MySQL・PostgreSQLなどの方言選択、予約語の大文字/小文字変換、1行化(Minify)に対応しています。
使い方
- 左側の入力欄に整形したいSQLを貼り付けます。
- 「整形 (Format)」タブでSQL方言(Standard, MySQL, PostgreSQLなど)と、予約語の大文字/小文字/そのままを選択します。
- 右側にインデント・改行が整えられたSQLがリアルタイムに表示されます。
- 1行のSQLに戻したい場合は「1行化 (Minify)」タブに切り替えると、コメントを除いた1行のSQLが生成されます。
このツールについて
SQL整形・クエリフォーマッターは、改行やインデントが崩れたSQLを読みやすい形式に自動整形できるツールです。ログに出力された1行のSQLや、他のツールが生成したSQLを確認・レビューする際に、構造をひと目で把握できるようになります。
整形処理には人気のオープンソースライブラリ「sql-formatter」を使用しており、Standard SQLのほか、MySQL・PostgreSQL・SQLite・MariaDB・Transact-SQL(SQL Server)・BigQueryといった主要な方言ごとの構文の違いに対応した整形が可能です。
予約語(SELECT、FROM、WHEREなど)の大文字・小文字を統一するオプションや、逆にSQLを1行に圧縮する機能も備えており、コーディング規約への統一やログ出力用のコンパクトなSQL生成にも活用できます。
「select id from users where id=1;」を貼り付け、予約語を大文字に設定すると、SELECT・FROM・WHEREが大文字になり、句ごとに改行されたSQLを確認できます。次に1行化へ切り替えると、読みやすさを優先した配置から空白をまとめた表現へ変わります。
整形はクエリの見通しを良くする処理で、実行計画やインデックスの改善を判定する機能はありません。DBへ接続せず入力文字列だけをブラウザ内で処理するため、実テーブルの有無や列の型は確認できません。出力の用途に合わせて方言を選んでください。
よくある質問
どのSQL方言を選べばよいかわかりません。
使用しているデータベース製品に合わせて選択してください。特定の方言固有の構文を使っていない場合は「標準SQL (Standard)」を選んでも多くの場合問題なく整形できます。
整形結果の構文が実行環境と少し異なることがあります。
本ツールはSQLの構文を解析してインデントを整えるものであり、実際にSQLを実行して検証するものではありません。方言固有の関数や構文によっては意図通りに整形されない場合があります。
1行化(Minify)ではコメントはどうなりますか?
コメントと連続空白を正規表現で取り除く簡易処理です。文字列リテラルを識別しないため、引用符内にコメント記号や連続空白があるSQLには1行化を使わず、整形機能を利用してください。
入力したSQLはサーバーに送信されますか?
送信されません。SQLの整形・1行化はすべてブラウザ内のJavaScriptで実行されます。