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 スペース・タブ、カンマは行末(後置)と行頭(前置)から選べます。大文字・小文字をそろえるのは予約語だけで、関数名・データ型名・テーブル名・列名は入力のまま残します。