なぜSQLフォーマットが重要なのか

SQLは機能的に正しければ1行で書くことも可能ですが、長いクエリを読みやすくするためのフォーマットは、コードレビューの効率化・バグの発見・チームでの保守性向上に欠かせません。

基本的なフォーマット規約

SELECT
  u.id,
  u.name,
  COUNT(o.id) AS order_count
FROM
  users u
  INNER JOIN orders o ON u.id = o.user_id
WHERE
  u.created_at >= '2025-01-01'
  AND u.status = 'active'
GROUP BY
  u.id,
  u.name
ORDER BY
  order_count DESC
LIMIT 100;

主要な規約ポイント

  • 予約語は大文字:SELECT・FROM・WHERE・JOIN・AND・ORなど
  • 句ごとに改行:SELECT・FROM・WHERE・GROUP BY・ORDER BYは新しい行から開始
  • カラムはインデント:SELECTの各カラムは2〜4スペースインデント
  • テーブルエイリアス:JOIN時はわかりやすい短縮名を使う
  • コメント活用:複雑なロジックには-- コメントを付ける

長いIN句の書き方

WHERE status IN (
  'active',
  'pending',
  'approved'
)

フォーマッターの活用

チームで一貫したフォーマットを維持するために、SQLフォーマッターを使うのが効果的です。手動での整形は時間がかかり、人によってスタイルが変わりやすいためです。CI/CDパイプラインに組み込むことで、自動的にフォーマットを強制できます。