SQL整形

SQLを句ごとに改行・字下げして読みやすく整形します。キーワードの大文字・小文字、インデント幅、カンマの位置を選べ、1行への圧縮もできます。

SQLを貼り付けると自動で整形します。

補足

  • SELECT / FROM / WHERE / GROUP BY / ORDER BY などの句で改行し、中身を1段下げます。JOIN は FROM の中で改行し、WHERE・HAVING・ON の AND / OR でも改行します(BETWEEN の AND と括弧の中は改行しません)。
  • サブクエリ(括弧の中が SELECT / WITH)と CREATE TABLE の列定義は括弧の中を字下げします。関数の引数・IN のリスト・OVER (...) は1行のままです。
  • 文字列リテラル('...')、引用符付きの識別子("..." `...` [...])、コメント(-- と /* */)、PostgreSQL のドル引用($$...$$)は中身を変えません。
  • 大文字・小文字をそろえるのは予約語だけです。関数名・データ型名・テーブル名・列名は入力のまま残します。
  • 1行に圧縮すると、-- のコメントは行末まで続く性質上残せないため取り除きます。/* */ のコメントは最適化ヒントの場合があるため残します。
  • 方言の違いまでは見分けません。MySQL の # コメントや、'It\'s' のようなバックスラッシュのエスケープは解釈できないため、'' で書いてください(PostgreSQL の E'...' は扱えます)。構文の誤りは検出しません。

よくある質問

文字列やコメントの中身が変わってしまうことはありませんか?

ありません。文字列リテラル、引用符付きの識別子("..." `...` [...])、コメント(-- と /* */)、PostgreSQL のドル引用($$...$$)は 1 つのまとまりとして扱い、中身には手を付けません。ただし 1 行に圧縮するときは、-- のコメントを取り除きます。

MySQL・PostgreSQL・SQL Server などの方言に対応していますか?

共通する書き方には対応していますが、方言の違いまでは見分けません。MySQL の # コメントや、バックスラッシュでの引用符のエスケープ(\')は解釈できないため、文字列の中の引用符は '' と重ねて書いてください(PostgreSQL の E'...' は扱えます)。

SQLの構文エラーを見つけられますか?

できません。改行と字下げを整えるための道具で、SQL として正しいかどうかは確かめません。エラーにするのは、文字列・識別子・コメントが閉じていない場合だけです。

キーワードの大文字・小文字やカンマの位置は選べますか?

選べます。キーワードは大文字・小文字・入力のまま、インデントは 2 スペース・4 スペース・タブ、カンマは行末(後置)と行頭(前置)から選べます。大文字・小文字をそろえるのは予約語だけで、関数名・データ型名・テーブル名・列名は入力のまま残します。

↑↓ 移動 / Enter 開く / Esc 閉じる