メインコンテンツへスキップ

SQL フォーマッター

一行に詰まった SQL を、読みやすいインデント付きに整形。MySQL・PostgreSQL・SQLite などに対応、キーワードの大文字化も選べます。

1 行を入れて、読めるクエリに

グループ化を伴う join を 1 行に詰め込んだもの。

入力
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 having count(o.id)>2 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
having
  count(o.id) > 2
order by
  orders desc

改行のほかに、= と > の両側に空白が入った点に注目してください。o.user_id=u.id が o.user_id = u.id になっています。キーワードは意図的に小文字のままです。大文字化は文体の選択で専用オプションがあり、インデントはそうではありません。

SQL フォーマッターとは?

コードやログ、ORM から取り出した SQL は、長く読みにくい一行で届くことがよくあります。この SQL フォーマッターは、それを適切なインデントと改行で整えます。SELECT・FROM・WHERE・JOIN がそれぞれの段に分かれ、クエリが何をしているかひと目でわかります。MySQL・PostgreSQL・SQLite などの方言に対応し、すべてブラウザ内で処理します。

使い方

  1. SQL を入力欄に貼り付けます。
  2. データベースの方言とキーワードの大小を選びます。
  3. 「整形」を押し、整った結果をコードやツールに貼り戻します。

活用シーン

  • ORM やフレームワークが出力した長いクエリを整えてデバッグ。
  • チームの SQL スタイル(インデント・キーワード大文字)を統一。
  • JSON など他のデータも扱う?JSON 整形や JSON ⇄ CSV をどうぞ。

正しい「方言」を選ぶと結果が変わるのはなぜ?

SQL には ANSI 標準がありますが、各データベースが独自の構文を足しているため、フォーマッターは正しく整えるのにあなたが使う方言を知る必要があります。典型例は識別子の引用符で、MySQL はバッククォート `col`、PostgreSQL と標準 SQL は二重引用符 "col" を使います。ほかにも LIMIT(MySQL/SQLite)vs TOP(SQL Server)、PostgreSQL 固有の :: 型変換、BigQuery のバッククォート表名などがあります。方言を間違えると、これらを単なる文字列や演算子とみなし、インデントがおかしくなります。貼り付ける前に、「データベース」のドロップダウンで実際に使うものを選びましょう。もう一つ解いておきたい誤解:整形は検証ではなく、クエリを実行もしません——空白とインデントを調整するだけで、テーブルが存在するか、実際のデータベースで動くかは教えてくれません。データ自体を整えるには、JSON は JSON 整形、表は JSON ⇄ CSV を。

キーワードの大文字小文字は変わる?

既定では変わりません。しかもそれは 1 文字ずつ検証できます。小文字のクエリは select * from users where id = 1 に、同じ形を大文字で書くと SELECT id, name FROM t WHERE a = 1 AND b = 2 になります。入れた表記のまま返ります。既定は preserve です。キーワードの表記を変えるのはチームのスタイルであって正しさの修正ではなく、黙って変えれば「整形だけ」のコミットの差分が査読不能になります。実際に変わるのは改行です。1 行 1 句、被演算子はその下に字下げされます。

よくある質問

どのデータベースに対応?

Standard SQL に加え、MySQL・PostgreSQL・SQLite・MariaDB・BigQuery などの一般的な方言に対応します。方言ごとにキーワードや構文が少し違うため、正しい方言を選ぶとより正確に整形できます。

クエリのロジックは変わる?

変わりません。整形は空白・改行・インデント(と任意のキーワード大小)を調整するだけで、テーブル・列・条件には手を触れません。クエリの動作はまったく同じです。

キーワードの大小をそろえられる?

はい。そのまま保持、すべて大文字(SELECT、FROM)、またはすべて小文字を選べるので、チームの SQL スタイルを統一できます。

データは送信される?

いいえ。整形はブラウザ内で行われ、SQL がデバイスから出ることはありません。

関連記事

なぜ SQL を整形するのか(そしてフォーマッターは何をするのか) →

このツールを埋め込む

このツールをあなたのサイトやブログに無料で設置できます。下のコードをコピーして貼り付けるだけです(当サイトへのリンクを含みます)。