DevTools Japan トップへ

SQLフォーマッター

SQL文を見やすく整形・インデント

SQL入力

整形結果

SQLフォーマッターの使い方

SQL文を見やすくインデント整形する無料ツールです。SELECT・JOIN・WHERE・GROUP BY・ORDER BY等のキーワードを適切に改行・インデントし、複雑なクエリの可読性を大幅に向上させます。

なぜSQLの整形が必要か

複数テーブルのJOINやサブクエリを含むSQLは、1行で書くと構造を把握するのが困難です。このツールで整形することで、テーブル間の関係、フィルタ条件、集計方法が一目でわかるようになります。コードレビュー時のミス発見にも役立ちます。

対応するSQL方言

標準SQL(ANSI SQL)に対応しています。MySQL、PostgreSQL、SQLite、SQL Serverなど、主要なRDBMSのSQLを整形できます。

SQLフォーマット(整形)とは

SQLフォーマット(整形)とは、1行や不揃いに書かれたSQL文に対し、SELECT・FROM・WHERE・JOIN・GROUP BY・ORDER BYといった主要キーワードの前で改行を入れ、節(句)ごとにインデントを付けて構造を見やすくする処理です。SQLは改行や空白の有無に関係なく同じ結果を返すため、整形してもクエリの意味や実行結果は変わりません。あくまで「人間が読みやすい形」に整える、見た目だけの調整です。

整形が役立つ場面は主に3つあります。1つ目は可読性です。複数テーブルのJOINや長いWHERE条件、サブクエリを含むSQLは、1行のままだとどこからどこまでが1つの節なのか把握しづらく、整形によってクエリ全体の骨格が一目で追えるようになります。2つ目はコードレビューです。節ごとに改行・インデントされていると、JOINの結合条件の抜けやWHERE句の論理ミス、不要なカラムの混入などを発見しやすくなり、レビューの質と速度が上がります。3つ目はデバッグです。意図しない結果を返すクエリを調べる際、整形されたSQLは条件を1つずつコメントアウトして切り分けるといった作業がしやすく、原因の特定が容易になります。

このツールはブラウザ内のJavaScriptだけで整形を行うため、入力したSQLは外部に送信されません。整形結果はコピーボタンでそのまま取得でき、エディタやSQLクライアントに貼り付けて利用できます。

主なキーワードの整形ルール

本ツールは、あらかじめ登録された主要なSQLキーワードを検出し、その直前で改行します。検出したキーワードは入力時の大文字・小文字にかかわらずすべて大文字へ統一されます。また、カンマ区切りのカラムリストはカンマの後で改行し、インデントを付けて並べます。代表的なキーワードの扱いは次のとおりです。

キーワード整形時の扱い役割
SELECT直前で改行・大文字化取得するカラムの指定
FROM直前で改行・大文字化対象テーブルの指定
WHERE直前で改行・大文字化絞り込み条件
INNER / LEFT / RIGHT JOIN直前で改行・大文字化テーブルの結合
ON直前で改行・大文字化結合条件の指定
AND / OR直前で改行・大文字化条件の連結
GROUP BY直前で改行・大文字化集計のグループ化
HAVING直前で改行・大文字化集計後の絞り込み
ORDER BY直前で改行・大文字化並び順の指定
LIMIT直前で改行・大文字化取得件数の制限
, (カンマ)直後で改行+インデントカラムリストの区切り

このほか INSERT INTO・VALUES・UPDATE・SET・DELETE FROM・CREATE TABLE・UNION・CASE / WHEN / THEN / ELSE / END・DISTINCT・IN・LIKE・BETWEEN・EXISTS などのキーワードも検出・大文字化の対象です。テーブル名・カラム名・文字列リテラルといったキーワード以外の部分は、入力した大文字・小文字がそのまま保持されます。

対応するSQL方言の目安

特定の方言専用ではなく、標準SQL(ANSI SQL)の共通キーワードを基準に整形するため、主要なRDBMSのクエリに利用できます。

SQL方言 / RDBMS整形の可否備考
MySQL / MariaDB対応SELECT・JOIN等の共通キーワードを整形
PostgreSQL対応標準SQLベースのクエリを整形
SQLite対応SELECT中心のクエリに有効
SQL Server (T-SQL)対応共通キーワードの範囲で整形
Oracle (PL/SQL)対応共通キーワードの範囲で整形

いずれも、各方言に固有の構文を解析するわけではなく、共通するキーワードへの改行・インデント・大文字化を行う点にご留意ください。

よくある質問

MySQLやPostgreSQLのSQLも整形できますか?
はい。標準SQL(ANSI SQL)のキーワードを基準に整形するため、MySQL・PostgreSQL・SQLite・SQL ServerなどのSELECT・JOIN・WHERE・GROUP BY等を含むクエリを見やすくインデントできます。特定の方言専用の機能ではなく、共通キーワードに改行とインデントを加える仕組みです。
整形したSQLをコピーできますか?
はい。整形結果の上にあるコピーボタンを押すと、整形済みSQLがクリップボードにコピーされ「コピーしました」と表示されます。エディタやSQLクライアントにそのまま貼り付けられます。改行とインデントを加えるだけで、クエリの意味は変わりません。
大文字・小文字は変換されますか?
SELECTやFROM、JOINなどのSQLキーワードは、入力時に小文字や混在で書いても整形時にすべて大文字へ統一されます。一方でテーブル名・カラム名・文字列リテラルなどキーワード以外の部分は、入力した大文字・小文字がそのまま保持されます。
圧縮(1行化)もできますか?
いいえ。このツールはキーワードでの改行とインデントを加える整形(見やすくする方向)に特化しており、改行を取り除いて1行に圧縮するミニファイ機能はありません。1行化したい場合は別途エディタの置換機能などをご利用ください。
入力したSQLは送信されますか?
いいえ。整形処理はすべてブラウザ内のJavaScriptで完結し、入力したSQLが外部サーバーへ送信・保存されることはありません。社内システムや本番データベースのクエリも安心して整形できます。登録不要・無料で利用できます。

関連ツール

JSON整形ツール CSV⇔JSON変換ツール タブ⇔スペース変換ツール
コピーしました