SQL Formatter

SQLクエリを瞬時にフォーマット・整形・最小化できます。インデント、キーワード大文字化、スタイルをカスタマイズできます。すべてブラウザで動作し、クエリはどこにも送信されません。

動作方法: 下にSQLクエリを貼り付けて、フォーマットをクリックします。推奨インデントサイズとキーワード大文字化を選択します。すべてのフォーマットはブラウザで実行され、クエリはどこにも送信されません。

SELECT  u . id,
  u . name,
  u . email,
  o . total,
  o . created_at
FROM  users u
INNER 
JOIN  orders o
ON  u . id = o . user_id
WHERE  o . total > 100
AND  u . active = 1
ORDER  BY o . total DESC
LIMIT  10
13 行数11 キーワード数

SQLフォーマットとは

SQLフォーマットは、SQLクエリを一貫性があり読みやすい方法で構造化するプラクティスです。適切にフォーマットされたSQLはコードレビューを高速化し、デバッグを容易にし、新しいチームメンバーのオンボーディングをスムーズにします。コードベース全体で一貫したフォーマットを保つことで認知負荷を減らし、開発者が論理エラー、不足している句、パフォーマンス問題を一目で発見できます。プロフェッショナルなチームはSQLスタイルガイドを開発標準の一部として実装しています。

SQLスタイルコンベンション

最も広く採用されているSQLコンベンションには、キーワードを大文字(SELECT、FROM、WHERE)で書いて、テーブル名とカラム名から視覚的に区別することが含まれます。各主要な句は、独自の行で一貫したインデントを使って始める必要があります。カラムリストはバージョン管理でのdiffを容易にするため、1行に1つずつ配置されることが多いです。コンマの配置はさまざまで、一部のチームはコメントアウトを容易にするための先行コンマを推奨し、他のチームは末尾のコンマを使用します。重要なのはプロジェクト内での一貫性です。

一般的なSQLの句

適切にフォーマットされたSQLクエリは、その句を論理的な順序で整理します。SELECTは取得するカラムを定義し、FROMはソーステーブルを指定し、JOINはON条件で関連テーブルを結合し、WHEREは集約前に行をフィルタリングし、GROUP BYは集約関数用に行をグループ化し、HAVINGはグループ化された結果をフィルタリングし、ORDER BYは出力をソートし、LIMITは返される行数を制限します。各句はクエリ構築において異なる役割を果たします。

SQLフォーマットのヒント

  • すべてのネストされた句に一貫したインデント(2または4スペース)を使用する
  • カラム名を垂直に配置して、スキャンしやすくする
  • SQLキーワードを大文字で書いて、識別子と区別する
  • 各JOINを独自の行に配置し、ON条件をその下にインデントする
  • 複雑なJOINとサブクエリにコメントを付けてビジネスロジックを説明する
  • 長いWHERE句を1行に1つの条件に分割し、AND/ORを先頭に配置する
  • テーブルエイリアスを一貫性があり意味のある形で使用する(例:usersはu、ordersはo)