SQLフォーマッターは、圧縮されたり雑然としたSQLクエリを読みやすいコードに再インデント・整形します。19種のデータベース方言に対応しており、クエリを貼り付けて方言を選ぶだけで結果が即座に表示されます。キーワードの大文字/小文字、インデントスタイル、改行位置はすべて設定可能です。
方言の選択が整形精度に影響する
方言を間違えてもSQLの実行自体には影響しませんが、整形の正確さが下がります。
MySQL / MariaDB
- バッククォート識別子(
`table`)が正しく認識される GROUP_CONCATなどMySQL固有の関数が誤解釈されないAUTO_INCREMENTやENGINE=InnoDB句がエラー扱いにならない
PostgreSQL
- ダブルクォート識別子(
"table")が標準として処理される RETURNINGとON CONFLICT DO UPDATEが正しく整形される- 配列演算子
&&や@>が算術演算子と混同されない
SQL Serverには汎用sqlではなくtransactsqlを選んでください。TOP・WITH(NOLOCK)などT-SQL固有の構文をより正確に処理します。BigQueryは、バッククォートで囲まれたプロジェクトパスを含むクエリを整形する場合、BigQuery方言を明示的に選択する必要があります。
整形前後の比較
SELECT * FROM users WHERE age > 18 AND status='active' OR role IN ('admin','moderator') ORDER BY created_at DESC LIMIT 10
標準インデントスタイルで整形した結果:
SELECT
*
FROM
users
WHERE
age > 18
AND status = 'active'
OR role IN ('admin', 'moderator')
ORDER BY
created_at DESC
LIMIT
10
インデントスタイルと式の幅
3つのスタイルが選べます:標準(句を左揃え)、表形式左(キーワードを右揃えにして列を縦に揃える)、表形式右(キーワード左揃えでコンパクト)。式の幅(デフォルト50文字)は括弧内の式がいつ折り返されるかを制御します。IN (...)リストの各要素を1行ずつ表示したい場合は値を小さくすると、コードレビューでのdiff確認が楽になります。
AND / ORの改行位置
デフォルトではANDとORは次の行の先頭に置かれます(先頭スタイル)。チームの規約で演算子を行末に置く場合は、「論理演算子の改行」オプションを「後置」に切り替えてください。複数ステートメント間の空行数は1または2に設定でき、バッチスクリプトの区切りに使えます。
すべての整形処理はブラウザ内でローカルに実行されます。SQLコードはサーバーに送信されません。