onlinetools.dev

SQLフォーマッター

SQL を方言に応じたキーワード処理で整形、または 1 行にミニファイ

ローカル実行
loading…
このツールについて

ログファイルから取り出したクエリ、ORM のデバッグ出力、同僚が書いた 1 行クエリを貼り付けると、このフォーマッターが一貫したインデントで読みやすい句に分解します。標準 SQL、PostgreSQL、MySQL、SQLite、SQL Server、BigQuery の 6 つの方言に対応しているため、TOP、バッククォート識別子、配列型といった方言固有の構文もパーサーを躓かせることなく正しく整形されます。

キーワードの大文字小文字は設定できます。クラシックな見た目の大文字、チームの好みに合わせた小文字、あるいは元のまま手を付けない選択も可能です。ミニファイモードはその逆を行います — 整形済みのクエリを 1 行に畳み、コメントを取り除きつつ、文字列リテラルはバイト単位でそのまま残します。SQL を JSON 設定や CLI フラグに貼り付ける前に欲しいのは、まさにこれです。

クエリにはテーブル名、リテラル内の顧客データ、インフラのヒントが含まれがちです。整形はすべてブラウザ内で実行されるため、それらがサーバーに届くことはありません。

よくある質問

どの SQL 方言を選べばよいですか?
あなたのデータベースが話す方言です — 識別子、文字列のクォート、方言キーワードのパースの仕方が変わります。一般的な整形だけが目的なら、標準 SQL が共通のコアをカバーします。使っているデータベースでは有効な構文がパースエラーになるのは、たいてい方言を切り替えるサインです。
整形でクエリの動作は変わりますか?
いいえ。整形が動かすのは空白だけで、有効にした場合はキーワードの大文字小文字も変わります — 識別子とリテラルは正確なバイトを保ちます。SQL キーワードは対応するすべての方言で大文字小文字を区別しないため、SELECT と select は同じ文です。
複数の文を一度に整形できますか?
できます — スクリプト全体を貼り付ければ、; で終わる各文が順番に整形され、間には空行が入ります。
ミニファイは正確には何を取り除きますか?
行コメント(--)とブロックコメント(/* */)が削除され、連続する空白は単一のスペースに畳まれ、カンマや括弧の前後のスペースが取り除かれます。シングルクォート、ダブルクォート、バッククォート内のテキストには、二重クォートのエスケープも含めて一切触れません。
関連ツール