SQL Formatter
生のSQLクエリを設定可能なインデント、キーワードの大文字小文字、MySQL・PostgreSQL・T-SQL対応のダイアレクトサポートで整形・美化します。
フォーマットオプション
SQL入力
整形されたSQL
Formatted SQL will appear here…関連ツール
SQL フォーマッターについて
動作の仕組み
- SQLをキーワード、識別子、演算子、リテラルにトークン化します
- 句のキーワード(SELECT、FROM、WHERE、JOINなど)を新しい行に再インデントします
- クォートされた文字列、コメント、識別子を正確に保持します
- 選択したキーワードの大文字小文字(大文字、小文字、保持)を適用します
- 標準SQL、MySQL、PostgreSQL、T-SQLダイアレクトをサポートします
一般的なユースケース
- デバッグのためにORMが自動生成したクエリを読みやすくする
- コードレビューでクエリプランと実行ロジックをレビューする
- ドキュメントやチームメートとの共有のためにSQLを準備する
- ログファイルの混在ケースまたはミニファイされたSQLを正規化する
- 機械生成されたマイグレーションスクリプトをクリーンアップする
よくある質問
フォーマッターはどのSQLダイアレクトをサポートしていますか?
フォーマッターは標準SQL、MySQL、PostgreSQL、T-SQL(SQL Server)をサポートしています。ダイアレクトを選択すると、識別子のクォートのヒントとダイアレクト固有のキーワード処理が調整され、対象のデータベースエンジンと一致した出力が得られます。
フォーマットすると、クエリの意味が変わりますか?
いいえ。フォーマッターは空白とキーワードの大文字小文字のみを変更します。クエリの一部を書き換えたり、並べ替えたり、削除したりすることは一切ありません。フォーマットされた出力は、元の入力と意味的に同一です。
カンマファーストスタイルとは何ですか?
カンマファースト(先頭カンマとも呼ばれます)スタイルは、リストの各新しい項目の先頭にカンマを置きます(前の項目の末尾ではなく)。これにより、バージョン管理の差分で欠落したカンマを見つけやすくなるため、一部のチームに好まれています。
SQLキーワードに大文字を使うべき理由は何ですか?
予約語(SELECT、FROM、WHEREなど)に大文字を使用し、識別子(テーブル名と列名)に小文字を使用することは、最も広く採用されているSQLスタイル規則です。可読性が向上し、言語キーワードとユーザー定義名が一目で区別できます。
複数のSQL文を一度にフォーマットできますか?
はい。セミコロンで区切られた複数のステートメントを貼り付けると、フォーマッターが各ステートメントを処理します。各セミコロンは出力のステートメントの末尾に保持されます。
クォートされた文字列とコメントは正確に保持されますか?
はい。トークナイザーはシングルクォート文字列、ダブルクォート識別子、バッククォート識別子、ブラケット識別子、および--単一行と/* ブロック */コメントをすべて不透明なトークンとして扱います。それらの内容は決して変更されません。
ツールはSQLをサーバーに送信しますか?
いいえ。すべてのフォーマットはJavaScriptを使用してブラウザ内で完全に実行されます。SQLクエリはサーバーに送信されることはないため、機密性の高いスキーマ名、列名、データリテラルは完全にプライベートのまま保たれます。
利用可能なインデントオプションは何ですか?
インデントには2スペース、4スペース、またはタブ文字を選択できます。2スペースインデントはJavaScript隣接プロジェクトで一般的で、4スペースインデントは多くのSQLスタイルガイドで標準的です。タブインデントでは各開発者が自分のエディターで表示幅を調整できます。
サブクエリの出力がトップレベルのクエリと異なって見えるのはなぜですか?
括弧内のサブクエリは、周囲のコンテキストに対して1レベル追加でインデントされます。このネストは論理的な階層を視覚的に伝え、複雑なクエリのデータフローを追跡しやすくします。
ストアドプロシージャやDDLステートメントをフォーマットできますか?
はい。フォーマッターはCREATE TABLE、ALTER TABLE、INSERT INTO、UPDATE、DELETEおよびその他のDDL/DMLステートメントを処理します。CASE式、BEGIN/ENDブロック、ウィンドウ関数も正しくインデントされます。
JOINの条件が新しい行に置かれるのはなぜですか?
各JOINとそのON/USING条件を別々の行に置くことで、どの条件がどのJOINに属するかが明確になります。特にクエリに4つ以上のJOINがある場合に効果的です。これは最も人気のあるSQLスタイルガイドと一致しています。
非常に長いクエリはどのように扱えばよいですか?
長さに関係なく、クエリ全体を貼り付けてください。フォーマッターはサーバーへのラウンドトリップなしにブラウザ内で完全に動作するため、数百行の大きなクエリも瞬時にフォーマットされます。非常に大きなクエリ(> 1 MB)では、短い処理遅延が発生する場合があります。