Command Palette

Search for a command to run...

SQ

SQL フォーマッタ

乱雑な SQL を、読みやすいインデントされたクエリにフォーマットするか、SQL を 1 行に縮小する

SQL フォーマッタとは何ですか?

SQL Formatter は、高密度で単一行または一貫性のない書き込みの SQL を、読みやすくレビューしやすいクエリに変えます。 select、FROM、WHERE、JOINs、GROUP BY、ORDER BY、HAVING、LIMIT、UNION - という各主要節を独自の行に配置し、SELECT 列を別の行に分割し、その節の下に AND/OR 条件をインデントし、キーワード ケーシングを上下に正規化します。その結果、コード レビューで必要なレイアウトが得られます。ORM ログからの 400 文字のクエリは、欠落している結合条件をスキャンできる構造になります。

SQL クエリ フォーマッタとしては、select top 10 [Order ID], total from dbo.[Order Details] where total > 100 and status = 'open' のような行を取得し、最初の行で SELECT TOP 10 を返し、[Order ID] and total を独自のインデント行で返し、次に FROM、次に WHERE に AND 条件をインデントします。 SQL Server ユーザーは、これを SSMS 用の SQL フォーマッタとして扱うことができます。このオンライン SQL フォーマッタで T-SQL をフォーマットし、その後 SQL Server Management Studio に貼り戻します。これは SSMS 拡張機能ではなく Web ページであるため、インストールするものは何もありません。

内部的には、実際のトークナイザーであり、検索と置換のルールの山ではありません。 文字列リテラル (二重引用符とバックスラッシュ エスケープを含む)、二重引用符付きおよびバックティック引用付き識別子、括弧付き SQL Server 識別子、数字、演算子、および両方のコメント スタイル (-- 行と /* ブロック */) は、レイアウト決定が行われる前に、アトミック トークンとしてレックスされます。 つまり、文字列内の「SELECT * からユーザー」のような列値が句と間違われることはなく、書式設定によって文字通りのコンテンツを破損することなく、空白を再構成できます。

Minify モードはその逆を行います。フォーマットされたクエリを 1 行に折りたたみます。コメントを削除し、リテラル バイトごとにすべてのバイトを保存します。これは、ログ グレッピング、クエリを JSON ペイロードまたは.env ファイルにパッキングし、クエリの形状を比較するのに役立ちます。すべてがブラウザでクライアント側で実行されるため、テーブル名、リテラル内の顧客データ、またはスキーマの詳細を含む運用クエリは、アップロード、ログ記録、またはどこにでも保存されることはありません。

フォーマットは正規表現ベースではなくトークナイザーベースであるため、文字列リテラルと SQL キーワードを含むコメントは、コードのように再フォーマットされません。 方言は、特に、フォーマッタが解決できない点で異なるため、特に識別子の引用に関しては、出力は、ポータブルを保証するのではなく正規化します。

SQL フォーマッターの使い方

  1. SQL を貼り付けます

    任意のクエリー - ORM デバッグ ログからのワンライナー、手書きのレポート クエリ、またはセミコロンで区切られた複数ステートメント スクリプト。

  2. キーワード ケースとインデントを選択

    キーワードは大文字または小文字を選択し、チームの慣習に合わせてインデントの 2、4、または 8 スペースを選択します。

  3. [フォーマット] または [縮小] をクリックします

    形式は、選択した列を、それ自体の線および/またはインデントされた条件で行ごとに出力します。 Minify は、コメントを削除し、リテラルを変更しないで、すべてを 1 行に折りたたむことができます。

  4. コピーまたはダウンロード

    コード レビューまたは移行ファイルを作成するために、結果をクリップボードにコピーするか、.sql ファイルとしてダウンロードします。

主な機能

  • トークナイザーベース、リテラルセーフ

    文字列リテラル、引用符付きの識別子、コメントは最初にレックスされます - 書式設定によって引用符内のデータを変更することはできません

  • 節に注意する改行

    select, from, where, join varited, group by, order by, haveing, limit, and union それぞれの行を開始します, ネストの深さでインデントされたサブクエリを使用して、それぞれの行

  • キーワード ケースの正規化

    包括的なキーワード リスト (DML、DDL、関数、タイプ) は大文字または小文字に変換され、識別子は記述どおりにそのまま残されます。

  • 1 行につき 1 つの選択列

    コンマ区切りの選択リストが、個々のインデントされた行に分割され、幅広いクエリがプル リクエストで異なるようにします。

Frequently Asked Questions

はい。 Tokenizer は、両方の方言の共有とその引用の相違点という構文を理解しています。バックティック識別子とバックスラッシュ文字列エスケープで、MySQL、二重引用符付きの識別子、:: キャスト、および -> の場合は -> および -> PostgreSQL のような JSON 演算子です。 ブラケット [ 識別子] SQL Server からも処理されます。 未認識のトークンは、未知のトークンがそのまま通されるため、認識できない方言固有のステートメントは引き続き安全にフォーマットされます。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

sql formatterformat sqlsql beautifiersql pretty printsql minifierformat sql query onlinesql indentationuppercase sql keywordsmysql formatterpostgresql formattersql query formattersql formatter onlineonline sql formattersql formatter for ssms