てもとツール

SQL整形ツール|1行のSQLを読める形にして値を当てる

1行に詰まったSQLを読める形に整形します。方言は自動で探して当て直し、読めないときは行と桁を日本語で示します。ログに残ったプレースホルダへ値を当てて中身を確かめられます。

ブラウザ内処理 公開
値を当てる(プレースホルダ)

JSON の配列・オブジェクト、1 行 1 値、カンマ区切り、「名前: 値」の 4 通りで受け取ります。 当てはめた結果はログを読むためのもので、そのまま実行する用途には向きません。

詳細設定

整形したい SQL を貼り付けてください

1 行に詰まったログの SQL でも、そのまま貼り付けられます

このツールについて

使い方・特徴・補足情報

SQL整形ツールとは

SQL整形ツールは、1行に詰まったSQLを読める形へ並べ直すツールです。 貼り付けてボタンを押すと、句の区切りで改行と字下げが入ります。

方言は自動で探します。 標準SQLで読めなければPostgreSQLやMySQLを順に試し、どれで読めたかを画面に出します。

読めなかったときは、理由と行番号と該当行を日本語で示します。 英語のパースエラーをそのまま出さないので、直す場所へすぐ向かえます。

ログに残ったSQLは、値が別の行に分かれています。 その値を貼ると、疑問符や連番の位置へ当てはめて中身の見えるSQLにします。

こんな人におすすめ

SQLのログを読む人

楽になること

1行のSQLを読める形にする

避けたい手間

値が分からないまま読むこと

解決できる困りごと

  • 1行で記録された長いSQLを目で追い、どこからどこまでが条件なのかを数える手間が減ります
  • ログに残ったプレースホルダを別の行の値と見比べ、頭の中で置き換える作業をしなくて済みます
  • 英語のパースエラーを読み解いてから直す場所を探す、という二度手間を減らせます
  • 方言を当てずっぽうで切り替えて試し直す、という繰り返しの回数が減ります
  • 整形のときにコメントが消えていたことへ後から気づく、という取りこぼしを先に把握できます

使い方

  1. 整形したいSQLをテキストエリアに貼り付けます
  2. 「整形する」ボタンを押します
  3. 結果を確認し、「コピー」ボタンでクリップボードに写します
  4. プレースホルダがあれば「値を当てる」を開き、ログの値を貼ります
  5. 詳細設定で方言・字下げ幅・予約語の大小を切り替えます

使用例

1行のSQLを整形する

句の区切りで改行が入り、予約語が大文字にそろいます。結合の相手と絞り込みの条件が縦に並ぶので、上から順に読めます。

入力

select o.id,o.total,u.name from orders o join users u on u.id=o.user_id where o.status='paid' and o.created_at>='2026-09-01' order by o.total desc limit 20

出力

SELECT
  o.id,
  o.total,
  u.name
FROM
  orders o
  JOIN users u ON u.id = o.user_id
WHERE
  o.status = 'paid'
  AND o.created_at >= '2026-09-01'
ORDER BY
  o.total DESC
LIMIT
  20

プレースホルダに値を当てる

SQLと一緒にログの値を貼ると、疑問符の位置へ順番に入ります。数値は引用符なし、文字列は引用符つきで置かれる点に注目してください。

入力

select id, name from staff where dept_id = ? and joined_at >= ? order by id
値: [3, "2026-04-01"]

出力

SELECT
  id,
  name
FROM
  staff
WHERE
  dept_id = 3
  AND joined_at >= '2026-04-01'
ORDER BY
  id

読めなかったときの表示

丸括弧が閉じないまま文が終わった例です。英語の文法規則の羅列ではなく、行と桁と該当行と直し方が出ます。

入力

select * from (t

出力

1 行 17 桁で文が終わっています
select * from (t
                ^
開いた丸括弧が閉じていないか、文が途中で切れています。

活用シーン

スロークエリのログを読む

遅いクエリはたいてい1行で記録されます。貼って整形すると、結合の順番と絞り込みの条件が縦に並びます。

ORMが組み立てたSQLを確かめる

フレームワークが作るSQLは長くなりがちです。整形すると、意図した条件が入っているかを目で追えます。

コードレビューの前に書き方をそろえる

書式の揃っていないSQLを同じ規則へ直します。見た目のぶれで差分が埋まらなくなります。

プログラムへ埋め込む1行に戻す

整形したSQLを1行へまとめ直します。ソースコードの文字列として貼り付けられる形になります。

仕様書やWikiへ貼る前に整える

資料へ載せる前に字下げをそろえます。読み手が構造を追えるので、説明を書き足す量が減ります。

ログの値を当てて当時の条件を再現する

記録に残った値をプレースホルダへ当てはめます。どの範囲を対象にしたクエリだったのかが読み取れます。

技術的な解説

補足: 仕組み

整形の本体は npm の sql-formatter です。ボタンを押したときに動的インポートで読み込むので、ほかのページには載りません。

プレースホルダの検出には自前の字句解析器を使います。文字列とコメントの範囲を先に parse するため、memo = 'なぜ?' の疑問符は値として数えません。

整形の前後は同じ字句解析器でトークンへ分け、空白を除いた並びを突き合わせます。一致したトークン数を画面に出すので、中身が落ちていないかを数で確かめられます。

もっと詳しく

方言を外すと素朴なSQLでも読めなくなる

プレースホルダの書き方は方言ごとに違います。既定の標準SQLが受け付けるのは疑問符だけで、連番の $1 や名前つきの :id はその場で読めなくなります。

本ツールは落ちたときに、選択肢の14方言すべてで実際に試して読めたものを名指しします。当てずっぽうで切り替える必要がありません。

値を当てたSQLを実行に使わない理由

プレースホルダは、値を文字列として連結しないための仕組みです。値を埋めたSQLはその仕組みを外した形なので、そのまま実行する用途には向きません。

本ツールが値を当てるのは、ログを読むためだけです。当てはめた結果は画面で中身を確かめるところまでに留めてください。

JSON整形ツールとの使い分け

JSON整形ツールはJSONの字下げを整え、壊れている位置を示します。扱う言語が違うだけで、画面の作りはそろえてあります。

ソースへ埋め込む続きは文字列エスケープが引き受けます。1行化した結果をそのまま渡せます。

よくある質問

貼り付けたSQLはどこかへ送られますか?

ツールに入力したSQLはブラウザの中だけで処理され、サーバーへ送信されません。本番のテーブル名やカラム名を含むクエリでも、そのまま貼り付けてかまいません。

方言はどれを選べばよいですか?

既定の「自動で探す」のままで構いません。標準SQLから順に試し、読めた方言を結果の上に表示します。

決め打ちしたいときだけ切り替えてください。

SQLの文法が正しいかどうかも調べられますか?

調べられません。整形は見た目を整えるだけで、文法の検査はしていません。

予約語が1つも無い入力には断りを出しますが、これは正しさの判定ではありません。

コメントは整形したあとも残りますか?

既定では残します。詳細設定で「消す」を選んだときだけ取り除き、何件消したかを結果の下に表示します。

控えが必要なら、消す前に手元へ写してください。

値を当てたSQLをそのまま実行してもよいですか?

実行する用途には向きません。プレースホルダは値を連結しないための仕組みで、埋めた結果はその仕組みを外した形になります。

ログを読む目的に留めてください。

参考・出典

本ツールの計算式・判定基準は上記の公的機関・公式情報源を参考にしています。最新の情報は各リンク先をご確認ください。

関連記事

このツールの使い方や活用例をブログでも紹介しています。

関連ツール

同じカテゴリの他のツールも合わせてどうぞ。