SQL 文を整形または圧縮する手順

エディターに SQL 文を貼り付け、2 つのボタンのどちらかを押します。「SQL を整形」は各句をそれぞれの行に置いて本文をインデントし、「SQL を圧縮」は連続する空白を 1 つの空白にまとめます。どちらもこのタブ内で実行され、貼り付けた SQL が KivTools に送信されることはありません。

出力欄は読み取り専用のため、結果はその場で編集するのではなくコピーまたはダウンロードして使います。「例を読み込む」を押すと注文とユーザーを結合するクエリが入るので、実際の SQL を貼る前に動きを確認できます。

  1. 「SQL 入力」に SQL を貼り付けるか、「例を読み込む」でサンプルクエリを読み込みます。
  2. 「SQL を整形」で 1 行に 1 つの句を配置し、「SQL を圧縮」で 1 行にまとめます。
  3. 出力欄の上のカウンターを確認します。「ステートメント」はコメントだけの部分を除いて文の数を数え、「行」と「バイト」は結果の大きさを示します。
  4. 「コピー」で結果を取り出し、「ダウンロード」で kivtools-formatted.sql として保存します。「クリア」は入力欄と出力欄の両方を空にします。

変換が SQL に行うこと

コメントと引用符内の文字列は変更されません

-- と # の行コメント、/* ブロックコメント */、引用符で囲んだ文字列はそのまま残ります。圧縮した出力では行コメントがブロックコメントに書き換わるため、改行が消えても後続の文がコメントに飲み込まれることはありません。

引用符内の文字列はそのまま返ります。SELECT 'a b' は 2 つの空白を保ち、文字列の中のセミコロンや二重ハイフンが文を分割することはありません。

テキストを整形するだけで、SQL を解析はしません

整形は特定のエンジン向けパーサーではなく、キーワード・括弧・引用符の規則に基づいて行われます。そのため構文エラーのある文でも警告なしに整形されて返ります。カウンターが示すのはサイズであり、正しさではありません。

どちらのボタンもデータベースに接続しません。接続・実行・検証のいずれも行いません。

方言ごとの構文はそのまま通ります

MySQL のバッククォート識別子、SQL Server の [角括弧] 名と TOP、PostgreSQL の :: による型変換と ->>・#> 演算子、Oracle の NVL などは変更されません。変換が変えるのは空白と改行であり、トークンではないためです。ストアドプロシージャの本体はブロックとして解析されず、キーワード単位で整形されます。

サイズと実行場所

処理はブラウザのタブ内で行われるため、実質的な上限はアップロード制限ではなく端末のメモリです。15 KB の文でもすぐに結果が返ります。

最近使ったツール: