SQL クエリをフォーマットする方法

· 3 分で読めます

整っていない SQL はバグを生む最速の方法のひとつです。クエリがインデントなしの 1 行に並んでいると、どの条件がどの結合に適用されるのか、サブクエリがどこから始まってどこで終わるのか、ロジックが正しいのかを見抜くのは困難です。

フォーマットが重要な理由

SQL をフォーマットする方法

  1. SQL を貼り付ける — ミニファイされた、または整っていないクエリをフォーマッターに入力します。SELECT、INSERT、UPDATE、DELETE、CREATE TABLE、サブクエリや結合を含む複雑なクエリにも対応します。
  2. オプションを設定 — インデントサイズと、キーワードを大文字にするかを選択します。これらの設定はプロジェクトのスタイルガイドに合わせてください。
  3. 結果をコピー — フォーマット済み SQL はエディタ、データベースクライアント、ドキュメントに貼り戻せます。

良いフォーマットの見た目

select u.name, o.total from users u join orders o on u.id = o.user_id where o.total > 100 and u.active = 1 order by o.total desc のようなクエリは次のようになります:

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

各句が独立した行で始まります。条件は親句の下にインデントされます。結合とその ON 条件は明確にペアになっています。

ヒント

よくある質問

SQL のキーワードは大文字で書くべきですか?

SQL のキーワード(SELECT、FROM、WHERE)を大文字で、テーブル名やカラム名を小文字で書くのは広く採用されている慣習です。クエリが視覚的に読みやすくなります。多くのスタイルガイドが推奨していますが、データベースエンジンが要求するものではありません。

フォーマットでクエリの実行が変わりますか?

いいえ。空白とインデントは SQL の実行に影響しません。フォーマットは純粋に人間の可読性のためです。ミニファイされたクエリとインデントされたクエリは同じ結果を返します。

どのインデントサイズを使うべきですか?

2 スペースも 4 スペースもどちらも一般的です。チームで使われているものを選び、一貫させてください。ほとんどの SQL フォーマッターはこの設定が変えられます。

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

いいえ。フォーマットは完全にブラウザ内で行われます。クエリがデバイスから出ることはありません。