完全無料

SQL クエリ フォーマッター

SQLクエリを瞬時にフォーマット・整形・シンタックスハイライトします。無料・安全・アップロード不要。

.sqlファイルをドラッグ&ドロップ

または以下にSQLクエリを貼り付け

または

このツールについて

SQL クエリは、多くのテーブルにわたる結合、ネストされたサブクエリ、多くの条件を含む大きな WHERE 句、複雑な CASE 式など、すぐに長く複雑になります。数行に詰め込まれたコンパクト SQL は判読できません。 SQL を適切にインデントし、一貫した大文字を使用すると、クエリ構造が一目でわかるようになります。書式設定は、デバッグできるクエリとデバッグできないクエリの違いです。

このフォーマッタは SQL を解析し、インデントされ、大文字と小文字が正しく区別された出力を出力します。 SQL キーワード (SELECT、FROM、WHERE、JOIN、GROUP BY) は通常大文字で、テーブル名と列名はソースと一致し、インデントはネストを反映します (サブクエリは親内でインデントされ、CASE ブランチはインデントされます)。複数の方言のサポートにより、MySQL、PostgreSQL、SQL Server、Oracle、SQLite の違いが処理されます。

フォーマットは非破壊的であり、フォーマットされたクエリは機能的に入力と同一です。空白文字と大文字小文字のみが変わります。

SQL をフォーマットする理由

フォーマットされていない高密度の SQL を読むのは精神的に負担がかかります。どの条件がどの JOIN に属しているのか、サブクエリの開始位置と終了位置、CASE 分岐の関連性などを特定することは、すべてが数行に及ぶ場合には困難になります。フォーマットされた SQL は読み取りが速く、構造の誤読によるバグが軽減されます。

コードレビューには特にメリットがあります。レビュー担当者は、クエリがフォーマットされたときにどのような動作をするかをすぐに把握できます。レビュー中にフォーマットされていない SQL を読み取ると、スキップやラバースタンプが奨励されます。フォーマットされた SQL は、クエリが変更されたときに意味のある差分も生成します。

使い方

クエリを貼り付け、「形式」をクリックします。

  1. SQLを貼り付けます: クエリを入力領域にドロップします。単一ステートメントまたは複数ステートメント入力の両方が機能します。
  2. 方言を選択してください: デフォルトは汎用 SQL です。方言固有のキーワード認識には、MySQL、PostgreSQL、SQL Server、または Oracle を選択します。
  3. オプションを構成する: インデントのサイズ (通常は 2 つまたは 4 つのスペース)、キーワードの大文字と小文字 (大文字が最も一般的ですが、チームによっては小文字が優先されます)、カンマの配置 (末尾または先頭)。
  4. フォーマット: フォーマットされた出力がすぐに表示されます。コピーまたはダウンロードしてご利用ください。

一般的な使用例

技術的な詳細

データベースが異なれば文法が異なる方法で拡張されるため、SQL 解析には方言を理解する必要があります。通常、フォーマッタはトークナイザーを使用してキーワード、識別子、リテラル、句読点を識別し、トークン間の空白とインデントのルールを使用して出力を生成します。

インデント規則: SELECT、FROM、WHERE、GROUP BY、ORDER BY をそれぞれ別の行に記述します。 FROM の下でインデントされた後続の行で結合されたテーブル。読みやすくするために、WHERE 内の条件を別の行に記述します。独自のインデントされたブロック内のサブクエリ。

大文字と小文字の規則: キーワードは大文字 (SELECT、FROM、WHERE) が最も一般的です。チームによっては小文字を好む場合があります。識別子 (テーブル名と列名) では、ソースの大文字と小文字が保持されます。

ベストプラクティス

よくある質問

書式設定によりクエリの動作は変わりますか?
いいえ。SQL 書式設定では、空白、改行、およびキーワードの大文字と小文字のみが調整されます。クエリ ロジック、実行計画、結果は同一のままです。これは純粋に読みやすさの向上です。
どの SQL 言語がサポートされていますか?
このツールは、標準 SQL と特定の言語 (MySQL、PostgreSQL、SQLite、SQL Server (T-SQL)、Oracle PL/SQL) をサポートしています。方言特有のキーワードや機能が正しく認識されます。
サブクエリと CTE は処理されますか?
はい。共通テーブル式 (WITH 句)、ネストされたサブクエリ、ウィンドウ関数、および複雑な JOIN チェーンは、適切なインデント レベルでフォーマットされます。
これをストアド プロシージャに使用できますか?
フォーマッタは単一の SQL ステートメントを最適に処理します。複数ステートメントのプロシージャ、トリガー、関数は機能する可能性がありますが、複雑な手続きロジック (IF/ELSE、ループ) の書式設定は方言に依存します。
キーワードは大文字にする必要がありますか?それとも小文字にする必要がありますか?
慣習はさまざまです。大文字のキーワードは伝統的で一般的です。最新のスタイル ガイドでは小文字が採用されつつあります。 1 つを選択し、コードベース内で一貫性を保ちます。
ストアド プロシージャをフォーマットしますか?
ほとんどのフォーマッタはストアド プロシージャ構文 (CREATE PROCEDURE、BEGIN/END ブロック、制御フロー) を処理します。方言固有の拡張子は部分的にサポートされる場合があります。
私の SQL はアップロードされていますか?
いいえ。フォーマットはブラウザ内で行われます。
コマンドラインからフォーマットできますか?
いくつかの SQL フォーマッタは CLI ツール (sqlfluff、sql-formatter) を提供します。バッチ フォーマットまたは CI 統合に使用します。ブラウザ フォーマッタは、アドホックな 1 回限りの使用を目的としています。