SQL Formatter

SQLを整形して、読みやすくフォーマットします。

入力データはブラウザ内で処理されます
データはサーバーへ送信されません

変換ツール

0 文字

またはファイルをドラッグ&ドロップ

SQL Formatterとは?

SQL Formatterは、一行に詰め込まれたSQLや、インデントが崩れて読みにくくなったクエリを、構造がひと目でわかる形に整形するツールです。 複雑なJOINやサブクエリを含むSQLも階層ごとに改行・字下げされるため、コードレビューやデバッグが格段に楽になります。 MySQL・PostgreSQL・SQLiteなど主要なSQL方言(Dialect)に対応しており、インデント幅やキーワードの大文字/小文字表記も設定できます。

こんな時に便利

  • アプリのログやDB管理ツールから取得したSQLが一行で読みにくい:ORMが生成したクエリやスロークエリログは改行なしの一行で出力されることが多く、そのまま貼り付けるだけで階層構造がわかる形に整形されます。
  • 複数のJOINやサブクエリが入り組んだクエリの構造を把握したいSELECTFROMWHEREJOINなどの句ごとに改行・字下げされるため、どのテーブルがどの条件で結合されているかを目で追いやすくなります。
  • チーム内でSQLの記法(キーワードの大文字/小文字、インデント幅)を統一したい:「大文字化」「小文字化」オプションと、2スペース・4スペース・タブから選べるインデント設定で、レビュー時の表記ゆれを解消できます。
  • 利用しているDBMSの方言でSQLとして正しく解釈されるか確認したい:Dialectを実際に使用しているDBに合わせて選択すれば、その方言特有の構文(バッククォート識別子など)が正しくパースされるかその場で確認できます。

使用例

例1:JOINを含むSELECT文を整形する

入力(一行のSQL):

select u.id, u.name, o.total from users u join orders o on u.id = o.user_id where o.total > 100 order by o.total desc

整形後(インデント2スペース・大文字化):

SELECT
  u.id,
  u.name,
  o.total
FROM
  users u
  JOIN orders o ON u.id = o.user_id
WHERE
  o.total > 100
ORDER BY
  o.total DESC

SELECTFROMJOINWHEREORDER BYといった句ごとに改行され、選択カラムやJOIN条件が字下げされて表示されるため、クエリ全体の構造を素早く把握できます。

例2:インデントをタブに変更する

「インデント」設定を「タブ」に切り替えると、同じ入力でもスペースの代わりにタブ文字で字下げされます。エディタのタブ幅設定に合わせて表示を統一したい場合に便利です。

SELECT
	u.id,
	u.name
FROM
	users u

例3:キーワードの大文字/小文字を統一する

入力:

SELECT id, name FROM users WHERE active = TRUE

「大文字化」を「小文字化」に設定すると、SELECTFROMなどのキーワードがすべて小文字に統一されます。

select
  id,
  name
from
  users
where
  active = true

「そのまま」を選んだ場合は、入力時のキーワード表記(大文字・小文字混在)がそのまま維持されます。

例4:Dialectによって整形結果が変わるケース

MySQL特有のバッククォート(`)による識別子指定を含むSQLを例にします。

SELECT `user`.`id`, `user`.`name` FROM `user` WHERE `user`.`status` = 1

言語(Dialect)を「MySQL」または「MariaDB」に設定すると問題なく整形されますが、「Standard SQL」を選択した場合、バッククォートは標準SQLの識別子指定として解釈できず整形エラーになることがあります。使用しているデータベースに合わせてDialectを選ぶことで、こうした方言特有の構文差異を早い段階で発見できます。

使い方

  1. 入力欄にSQLクエリを貼り付けます。
  2. 必要に応じて言語(Dialect)やインデント設定を選択します。
  3. 「整形する」をクリックすると読みやすくフォーマットされます。
  4. 「結果をコピー」でクリップボードにコピーできます。

よくある質問

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

標準SQLに加え、MySQL, PostgreSQL, SQLite, T-SQL (SQL Server), PL/SQL, MariaDBに対応しています。

キーワードを大文字に統一できますか?

はい、「大文字化」オプションを「大文字化」に設定することで、SELECTやFROMなどのキーワードを大文字に統一できます。逆に「小文字化」を選べば小文字に、「そのまま」を選べば入力時の表記を維持できます。

データはサーバーに送信されますか?

いいえ、すべての処理はブラウザ内で行われます。データベースのクエリ内容が外部に送信されることはありません。

自動整形(オートフォーマット)とは何ですか?

「自動整形」をオンにすると、入力欄の内容を変更するたびに自動的に整形が実行されます。都度「整形する」ボタンを押す手間を省けます。

SQLファイルをドラッグ&ドロップで読み込めますか?

はい。.sqlまたは.txt形式のファイル(5MB以下)を入力欄にドラッグ&ドロップすると、内容が自動的に読み込まれます。

キーボードショートカットはありますか?

あります。Ctrl+Enter(Macは⌘+Enter)で整形を実行、Ctrl+Shift+C(Macは⌘+Shift+C)で結果をコピーできます。