SQL整形ツール

SQLの壁を読める形に — 必要なときは1行に戻すこともできます。

100%プライベート — すべてブラウザ内で動作します。データはお使いの端末で処理され、インターネットに送信されることはありません。

                        
.sqlをダウンロード

入力に合わせて整形されるので、押すボタンはありません。クエリはこのページに留まり、文字列やコメントの中は決して見ず、識別子は書いたとおりの大文字小文字を保ちます。

SQLの整形について

SQLは、たいてい1本の長大な行としてやってきます。ORMのログから、バグ報告から、誰かのクリップボードから。問題なく動くのに、まったく読めません。そして探している箇所は、その真ん中のどこかにあります。

貼り付ければ、組み上がった形で返ってきます。 1句1行、SELECTの下に列をインデント、JOINとそのON条件をそろえて並べるので、クエリの形が一目で見えます。

使い方

  • 左の欄にSQLを貼り付けます。入力に合わせて、色分けされた整形結果が右に現れます
  • お好みでインデントキーワードの大文字小文字カンマの位置を変えてください。結果はすぐに更新されます
  • コピーするか、.sqlファイルとしてダウンロードします
  • 1行に圧縮に切り替えると1行に戻ります。そのまま入力を続けてもこのモードは保たれます

整形のために押すボタンはありません。結果を変えるボタンは整形1行に圧縮の2つだけで、

これはどちらを表示するかを選ぶものです。

色は、クエリの同じ読み取りから来ています

出力の色分けは、整形したのと同じトークナイザを仕上がったテキストにもう一度走らせて付け

ています。キーワードはシアン、文字列は黄、数値はオレンジ、コメントは灰、記号はピンク、そし

てあなたのテーブル名や列名は素のままにして、まわりのSQLから浮かび上がるようにしています。

これは見た目以上の意味があります。クエリを一度読み取った結果がレイアウトと色の両方を作るの

で、二つが食い違うことはありえません。文字列として塗られているものは、整形側も確かに文字列

として扱ったものです。どこかで引用符が閉じていなければ、色がそのまま流れて位置を教えてくれ

ます。たいていは目で探すより速い方法です。

コピーとダウンロードが渡すのはプレーンテキストです。 色付きのマークアップではありません。

気をつけている2つのこと

手早いSQL整形ツールの多くは正規表現で動いており、この2点こそ、その方式が崩れるところです。

  • 文字列とコメントの中は決して見ません。 WHERE note = 'from a, b'を含むクエリには、文字列リテラルの中にキーワードとカンマと空白があります。正規表現の整形はそこで行を折り、クエリの意味を変えてしまいます。この道具はまずクエリをトークンに読み取るので、リテラルの中身は空白まで含めて入ったとおりに出ていきます
  • 識別子は書いたままの大文字小文字を保ちます。 大文字小文字を変えるのはキーワードだけです。大文字小文字を区別するサーバーではuserIduseridは別の列であり、それを「整えて」しまう整形ツールは、見た目のためにクエリを壊したことになります

引用のしかたはすべて理解します。''でエスケープする'文字列'"引用符付き識別子"、MySQLの バッククォート 、SQL Serverの[角かっこ]、PostgreSQLの$$ ドル引用 $$

設定できること

  • インデント — 半角スペース4つ、2つ、またはタブ
  • キーワード — 大文字、小文字、または書いたそのまま
  • カンマ — 行の末尾、あるいは社内の作法がそうなら行の先頭

1行に圧縮

圧縮すると、クエリは1行に戻ります。空白は、取り除くと意味が変わる場所や新しいトークンができてしまう場所にだけ残すので、安全な範囲でいちばん短くなります。

行コメントは落とされます。すべてが1行になると-- このようなコメントが残りを飲み込んでしまうからです。ブロックコメントは書かれたとおりに残ります。

こんなときに使われています

  • ORMのログに出たクエリを読めるようにする
  • プルリクエストやマイグレーションに入れる前にSQLを整える
  • 他人が書いた長いクエリを理解する
  • バグ報告の中のクエリを、作業できる形にする
  • 設定ファイルやシェルコマンド用にクエリを1行に収める
  • コミット前に.sqlファイルのフォルダの書き方をそろえる

知っておくとよいこと

  • クエリはこのページに留まり、どこにも送信されません。実際のテーブル名や列名が入っているときに便利です
  • これはSQLを組み上げる道具で、妥当かどうかは検査しません。構文エラーのあるクエリも、拒否せずできる限り整形します
  • 方言ごとの引用には対応しますが、方言どうしの書き換えはしません
  • 非常に大きなクエリでも大丈夫です。あなたの端末の中で単純な処理をしているだけです
  • すべてのブラウザで動き、スマホでも使えます

関連ツール

新しいツールを定期的に追加しています。公開時にお知らせを受け取るにはYouTube でチャンネル登録してください

他のツール

すべて表示

おすすめアプリ

すべて表示