SQLフォーマッター
SQLを読みやすくインデント整形したり、1行に圧縮できます。構文チェックでは、閉じ忘れの引用符・括弧、余分なカンマ、結合条件のない JOIN を行番号つきで指摘します。処理はすべてブラウザ内で完結し、入力したSQLが外部に送信されることはありません。
このツールについて
- 整形するで主要句(SELECT / FROM / WHERE / JOIN / GROUP BY / ORDER BY など)を改行・インデントし、読みやすく整えます。1行化で余分な空白を詰めて1行にします。
- 構文チェックでは、閉じていない
'"/*、対応していない括弧、余分なカンマ、END のない CASE をエラーとして、結合条件のない JOIN を注意として、行番号つきで出します。指摘を押すとその位置へカーソルが移動します。 - これは SQL のパーサではありません。方言ごとの文法は持たないので「このデータベースで実行できるか」は判定しません。トークンの並びだけで確実に分かる壊れ方に絞っています(正しいSQLに誤って赤を出さないことを優先しました)。
- キーワードの大文字/小文字、インデント幅(スペース2/4・タブ)を選べます。
- 文字列リテラル(
'...')の中身はそのまま保持します。1行化ではコメントを除去します。 - 一般的な SELECT / INSERT / UPDATE / DELETE を対象にした整形です。方言や複雑な構文では一部崩れる場合があります。
- 処理はすべてブラウザ内で完結し、入力内容が外部に送信されることはありません。
SQLフォーマッター・構文チェックとは?使い方と活用ガイド
SQLフォーマッターは、読みにくいSQLを見やすく整形したり、1行に圧縮したりできる無料ツールです。長く複雑なクエリは、改行やインデントが整っていないと構造を追うのが大変ですが、本ツールに貼り付けて整形すれば、SELECT・FROM・WHERE・JOIN・GROUP BY といった主要な句で改行・インデントされ、クエリの構造がひと目で分かるようになります。
くわしい説明を読むあと5段落
キーワードを大文字または小文字にそろえる設定や、インデント幅(スペース2・スペース4・タブ)を選べるので、チームのコーディング規約に合わせた出力ができます。SQLは大文字小文字を区別しませんが、予約語を大文字でそろえると、テーブル名やカラム名との区別がつきやすく、レビューや保守がしやすくなります。整形を統一しておくと、差分が見やすくなる効果もあります。
逆に空白を除いて1行へ圧縮するminifyにも対応しており、アプリのコードに埋め込む際や、ログに1行で残したいときに便利です。整形と圧縮を切り替えることで、編集時は読みやすく、利用時はコンパクトに、と使い分けられます。ツールやエディタに貼り付けてもログが1行で扱いやすくなり、検索やコピーがしやすくなります。
データ分析のクエリ作成、レビュー前のコード整形、他人が書いたSQLの読解、バグ調査、長いクエリの構造把握など、SQLを扱うあらゆる場面で役立ちます。手作業でインデントを整える時間を省き、ロジックそのものの検討に集中できるのが大きな利点です。入力したデータはすべてお使いのブラウザ内(JavaScript)で処理され、サーバーへ送信・保存されることはありません。会員登録やインストールも不要で、PC・スマートフォンのどちらからでも、すべての機能を無料で利用できます。社内の機密情報や個人情報を含むデータでも外部に漏れる心配がなく、ネットワークから切り離されたオフライン環境でも一度読み込めば動作するため、セキュリティが求められる業務でも安心して使えるのが、インストール型ソフトやサーバー処理型サービスにはないブラウザ完結型ツールの大きな利点です。
このツールには構文チェックも入れています。「構文チェック」を押すと、閉じていないシングルクォートやダブルクォート、閉じていないブロックコメント、対応していない丸括弧、余分なカンマ、ENDのないCASEをエラーとして、結合条件(ONやUSING)のないJOINを注意として、行番号と桁つきで一覧に出します。指摘を押すとその位置へカーソルが飛ぶので、長いクエリでも行を目で数える必要がありません。整形したときにも自動で走らせていて、問題が見つかったときだけ結果を出します。整形は完全なパーサではないため、閉じ忘れがあるとそこから先の解釈がずれて出力も崩れます。崩れた結果を黙って返さないための仕組みです。
ただし、これはSQLのパーサではありません。データベースごとの方言の文法を持たないので、「このデータベースで実行できるか」は判定しませんし、するべきでもないと考えています。見ているのはトークンの並びだけで確実に分かる壊れ方に絞っており、たとえば句の順序(SELECT→FROM→WHERE…)は検査していません。副問い合わせやCTE、ウィンドウ関数、集合演算が絡むと簡単に誤検知するからです。正しいSQLに誤って赤を出すツールは、一度でもそれをやると以後だれも信用しません。見逃しよりも誤検知のほうが害が大きいと判断して、確実なものだけを出す設計にしています。
よくある質問
SQLを見やすく整形できますか?
はい。SELECT・FROM・WHERE・JOIN・GROUP BY などの主要句で改行・インデントし、読みやすく整えます。1行への圧縮(minify)も可能です。
キーワードの大文字・小文字やインデント幅は変えられますか?
はい。キーワードを大文字/小文字に揃える設定と、インデント幅(スペース2/4・タブ)を選べます。
SQLの書き間違いを見つけられますか?
はい。「構文チェック」を押すと、閉じていない <code>'</code> <code>"</code> <code>/*</code>、対応していない括弧、余分なカンマ、ENDのないCASEを<b>エラー</b>として、結合条件のないJOINを<b>注意</b>として、行番号つきで出します。指摘を押すとその位置へカーソルが移動するので、行を目で数える必要はありません。
これはSQLが実行できるかどうかを判定してくれますか?
<b>いいえ。これはSQLのパーサではありません。</b>データベースごとの方言の文法を持たないので、「このデータベースで実行できるか」は判定できません。トークンの並びだけで確実に分かる壊れ方(閉じ忘れ・括弧の不一致・カンマの位置など)に絞っています。<b>正しいSQLに誤って赤を出さないことを優先した</b>ためで、たとえば句の順序(SELECT→FROM→WHERE…)は見ていません。副問い合わせやCTE、ウィンドウ関数で簡単に誤検知するからです。
「JOINにON / USINGがありません」と出ましたが、間違いですか?
間違いとは限らないので<b>注意</b>止まりにしています。結合条件のないJOINは全組み合わせ(直積)になるため、意図せず書いてしまうと件数が爆発します。意図してそうしているなら <code>CROSS JOIN</code> と書くと読む人に伝わります。<code>CROSS JOIN</code> と <code>NATURAL JOIN</code> には出ません。
整形すると結果が崩れました。
入力が壊れている可能性があります。整形は完全なパーサではないので、閉じ忘れの引用符や括弧があると、そこから先の解釈がずれて出力も崩れます。そのため<b>整形したときも自動で検査を走らせ、問題があるときだけ結果を出す</b>ようにしています。まず指摘を直してから整形し直してください。