SQL 整形・圧縮ツール
SQL を句ごとに改行して整形、または 1 行に圧縮します。MySQL・PostgreSQL・SQLite・SQL Server・BigQuery に対応。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const sql = 'SELECT\n name,\n email\nFROM\n users\nWHERE\n active = 1'
console.log(sql.replace(/\s+/g, ' ').trim())できること
SQL を句ごとに改行して整形するか、1 行に圧縮します。標準 SQL のほか MySQL、PostgreSQL、SQLite、T-SQL(SQL Server)、BigQuery に対応し、構文エラーは行と列つきで表示されます。
使い方
- SQL を貼り付けるか、
.sqlファイルをドロップします。 - 整形か圧縮を選び、続けて方言、キーワードの大文字・小文字、インデントを選びます。
- 結果をコピーまたはダウンロードするか、出力を入力にするで次の入力にします。
例
select id,name from users where active=1 を整形すると、SELECT、FROM、WHERE がそれぞれ別の行になり、列と条件がその下にインデントされます。整形したクエリを圧縮すると SELECT id,name FROM users WHERE active = 1 になります。
知っておくと便利なこと
- 変わるのは空白と、選んだ場合のキーワードの大文字・小文字だけです。名前、文字列、数値は入力のままです。
- 圧縮は
--と/* */のコメントを削除しますが、データベースが解釈する MySQL の/*! */とオプティマイザヒントの/*+ */は残します。 - データベースの方言を選んでください。バッククォートは MySQL、角括弧は T-SQL、
::キャストは PostgreSQL です。 - フォーマッターは最初の整形時に読み込まれるため、最初の結果は少し時間がかかることがあります。圧縮はダウンロード不要です。
方言が重要なのはなぜですか?
データベースごとに名前や演算子の書き方が違います。MySQL はバッククォート、T-SQL は角括弧で名前を囲み、PostgreSQL には :: キャストや $$ 文字列があります。方言を間違えると、正しい SQL が読み取れなかったり、変な整形になったりします。
よくある質問
整形するとクエリの動作は変わりますか?
いいえ。変わるのは空白と、選んだ場合のキーワードの大文字・小文字だけです。名前、文字列、数値は入力のままです。圧縮ではコメントを削除しますが、データベースが解釈する MySQL の /*! */ と /*+ */ は残します。
構文エラーが出るのはなぜですか?
整形のためにクエリを読み取る必要があるため、読み取れない最初のトークンで止まり、その行と列を示します。まず方言を確認し、次に示された箇所(カンマ、引用符、閉じ括弧の不足など)を確認してください。
このツールは SQL をどこかに送信しますか?
いいえ。すべてブラウザ内で行われます。入力した内容が当社のサーバーに送信されることはありません。