コンテンツへスキップ
uencoder

SQL ステートメントをフォーマットして整形する

SQL フォーマットは可読性と保守性を向上させます。インデントの規則、キーワードの整列、複雑なクエリの一貫したスタイルを学びましょう。

  1. 1

    SQL フォーマットの規約:(1) キーワードは大文字(SELECT、FROM、WHERE)。(2) 主要句はそれぞれ改行(SELECT、FROM、JOIN、WHERE、GROUP BY、HAVING、ORDER BY)。(3) 列は SELECT の下にインデント。(4) 結合条件は整列。(5) サブクエリはインデント。(6) カンマ先行またはカンマ後続のスタイルを一貫して使用。(7) 長い IN リストは折り返す。一貫したフォーマットにより、SQL は読みやすく、レビューしやすく、デバッグしやすくなります。

  2. 2
    SQL フォーマッター →

    標準規約で SQL クエリをフォーマットします。未フォーマットの SQL を貼り付けると、適切にインデントされキーワードが整列した出力が得られます。フォーマッタはサブクエリ、CTE、ウィンドウ関数、CASE 式を処理します。コードレビューとコミットの前に使ってください。

  3. 3

    SQL フォーマットワークフローを使って、SQL クエリのフォーマット、検証、ドキュメント化を行います。一貫したスタイルのきれいな SQL が生成され、構文エラーを捕捉し、複雑なロジックを説明するコメントを追加できます。

  4. 4

    チームの規約:フォーマットスタイル(sqlfluff、SQLFormat、pg_format など)について合意し、CI/CD で強制してください。pre-commit フックで SQL ファイルを自動フォーマットできます。ORM 生成の SQL には、クエリログを有効にして出力をフォーマットするとデバッグしやすくなります。チーム全体で一貫したフォーマットはレビューの摩擦を減らし、差分をきれいにします。

よくある質問

SQL キーワードは大文字と小文字のどちらにすべきですか?
スタイルの選択です。大文字のキーワード(SELECT、FROM)は伝統的で、識別子との区別に役立ちます。小文字は一部のフレームワーク(Django ORM)で一般的です。重要なのは一貫性です。1 つ選んで強制してください。ほとんどの SQL フォーマッタのデフォルトは大文字です。
非常に長いクエリはどうフォーマットしますか?
長い SELECT リストは 1 列 1 行に分割します。長い IN リスト(5 個超)は複数行に折り返します。複雑なクエリは CTE で名前付きステップに分割します。自明でないロジックにはコメントを付けます。100 行を超えるクエリは、ビューやストアドプロシージャへのリファクタリングを検討してください。

このタスクを解決するワークフロー

関連ツール