SQL 整形

SQL を貼り付けると自動で整います。文字列とコメントはそのまま保たれます。

使い方

  1. SQL を入力欄に貼り付けてください。入力するそばから整形され、押すボタンはありません。
  2. 予約語を大文字にするか小文字にするか、インデントをスペース 2 つか 4 つにするかを選ぶと、結果がすぐに更新されます。
  3. 行数を確認してから、結果をコピーするか .sql ファイルとしてダウンロードします。

例

入力

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 and o.created_at >= '2026-01-01'
group by u.id, u.name order by orders desc limit 10;

整形後

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
  AND o.created_at >= '2026-01-01'
GROUP BY
  u.id,
  u.name
ORDER BY
  orders DESC
LIMIT 10;

既定のルールのみの例です。各句が行頭に来て、リスト項目はスペース 2 つ分インデントされ、AND もインデントされます。count(...) は関数名なので入力した小文字のまま残り、日付の文字列も変更されません。

ルール・制限・既知の問題

  • これは空白を整えるツールです。SQL の解析、検証、実行は行いません。正しくない SQL もそのまま整形されます。
  • 方言の選択はありません。単一引用符、二重引用符、バッククォート、角括弧、$tag$ の文字列をすべて認識するため、MySQL・PostgreSQL・SQL Server・SQLite の引用符をそのまま貼り付けられます。
  • 大文字小文字をそろえるのは予約語だけです。関数名、型名(count、int、varchar)、引用符付き識別子は入力したとおりに出力されます。データベースが大文字小文字を区別する場合は識別子を引用符で囲んでください。
  • 文字列、数値、コメントは書き換えません。-- コメントの後は強制的に改行し、コメントを削除することもありません。圧縮モードはありません。
  • 結果はシンタックスハイライト(キーワード、識別子、文字列、数値、コメント)で表示され、構造を追いやすくなります。強調は表示だけのもので、コピーとダウンロードは常に整形済みのプレーンテキストを出力します。
  • 改行が入るのは句、リスト、CASE、サブクエリ、ウィンドウ、DDL の列の境界だけです。関数の引数や IN (...) のリストは 1 行のままで、長い行は結果パネル内で折り返されます。コピーとダウンロードでは折り返さない元のテキストが使われます。
  • 文字列は '' と \' の両方のエスケープを考慮して走査します。標準 SQL の 'C:\' のようにバックスラッシュで終わる文字列は閉じられていないと解釈されることがあり、その場合は警告を表示し、入力は変更しません。
  • ストアドプロシージャ、DELIMITER、PL/SQL ブロックには対応していません。ファイルのアップロード、URL パラメータ、履歴もありません。すべてブラウザ内で動作し、何もアップロード・保存されません。
  • 20 万文字を超えると、入力が止まって約 0.6 秒後に結果が更新されます。テキストが切り捨てられることはありません。出力の改行は LF で末尾に改行は付かず、整形は何度行っても同じ結果になります。

クエリが読みやすくなったあとによく使われるツールです。