SQLフォーマッター — 無料オンライン

圧縮または乱れたSQLを下に貼り付けて「変換」(または「整形」ボタン)をクリックすると、正しいインデントで読みやすい結果が得られます。

入力 準備完了

入力の統計は、このフィールド上部の統計ボタンから確認できます。

出力

出力の統計は、このフィールド上部の統計ボタンから確認できます。

結果は情報提供のみを目的としており、誤りを含む場合があります。重要な情報は必ずご自身で確認してください。本ツールのご利用は自己責任でお願いいたします。

このツールでできること

SQL整形ツールは、インデントと改行をそろえてクエリを書き直し、キーワードを大文字にします。各句(SELECT、FROM、JOIN、WHERE、GROUP BY、ORDER BY)が独立した行から始まり、その下の列や条件は2スペース分インデントされます。

単純なテキストの折り返しではなく、SQLを理解する整形エンジンを使っているため、結合、サブクエリ、CASE式、CTE、文字列リテラルも正しく扱います。識別子や値は書かれたとおりに残り、変わるのは空白とキーワードの大文字・小文字だけです。

こんなときに使えます

  • ORMのログ、監視ツール、エラーメッセージからコピーした1行の長いクエリを読む場合。
  • コードレビュー、ドキュメント、プルリクエスト用にクエリを整え、全員が同じレイアウトで読めるようにする場合。
  • SQLをJSONに変換でINSERT行をデータに変える前に、SQLを整理する場合。
  • 結合条件の抜けや位置のおかしいWHEREを見つける場合。句ごとに行が分かれていると格段に見つけやすくなります。

使用例

入力

select u.id, u.name, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.active = 1 group by u.id, u.name order by orders desc;

出力

SELECT
  u.id,
  u.name,
  count(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
WHERE
  u.active = 1
GROUP BY
  u.id,
  u.name
ORDER BY
  orders DESC;

このツールについての質問

クエリを整形するにはどうしますか?

入力欄にSQLを貼り付け、ツールバーの「SQLを整形」ボタンを押します。整形されたクエリが入力内容と置き換わり、すぐにコピーできます。

どのSQL方言に対応していますか?

日常的なクエリであれば、MySQL、PostgreSQL、SQL Server、SQLite、Oracle向けの標準SQLを正しく整形できます。製品固有の構文は、再整形されない場合でも書かれたとおりに残ります。

整形でクエリの動作は変わりますか?

いいえ。変わるのは空白とSQLキーワードの大文字・小文字だけです。テーブル名、列名、文字列の値、コメントはそのままなので、クエリは同じ結果を返します。

このツールは無料ですか?

はい、無料でご利用いただけます。登録・メールアドレス不要。結果はこのページに表示されます。

結果はどこで確認できますか?

このページでツールを使用すると、結果がここに表示されます。メールで受け取る必要はありません。