SQLフォーマッター
すべてブラウザ内で動きます。ファイルやデータが外部に送られることはありません。
このツールについて
SQLクエリを貼り付けると、インデントされ複数行に分割された形で出力されます。SELECT、FROM、WHEREなどのキーワードはそれぞれ独立した行になり、大文字・小文字も統一されます。方言固有の構文が正しく整形されるよう方言を選び、キーワードの大文字/小文字とインデント幅もチームのスタイルに合わせて設定できます。
対応しているSQL方言は?
標準SQL、MySQL、PostgreSQL、SQLite、T-SQL(SQL Server)、BigQueryに対応しています。各方言にはMySQLのバッククォート識別子やBigQueryの配列・構造体構文のような独自のクセがあり、正しい方言を選ぶことで標準SQLにはない構文でつまずかずに済みます。どの方言か判断がつかない場合は、ベンダー固有の機能を使っていないクエリなら標準SQLを選んでおけば無難です。
方言のほかに、キーワードの大文字・小文字(大文字化・小文字化・入力どおりを維持)と、インデント幅(スペース2つ、スペース4つ、タブ)を選べます。たとえば小文字で書かれたクエリを大文字化に設定すると、SELECT、JOIN、GROUP BYなどがすべて大文字になり、カラム名やテーブル名はそのまま保たれます。
クエリはブラウザの外に送信される?
されません。整形処理はsql-formatterライブラリを使い、すべてブラウザ内のJavaScriptで完結します。ネットワーク通信は行われないため、貼り付けた内容がサーバーに送信されたり、記録・保存されたりすることはありません。実際のテーブル名や顧客データ、他のWebフォームには貼り付けたくない埋め込み値を含むクエリでも安心して整形できます。
クエリが解析できない場合は?
選んだ方言でSQLが解析できない場合、ツールは中途半端な結果を推測で出すのではなくエラーを表示します。多くの場合、方言の選択が間違っているか、実際に構文エラーがあるか、パーサーが認識しない機能(一部のデータベース固有拡張や変則的なコメント形式など)を使っています。方言を切り替えるか、エラー箇所の周辺にカンマの付け忘れや閉じ括弧の抜けがないか確認すれば、たいてい解決します。
どんな場面で使える?
主な用途は、ORMのデバッグログからコピーした1行クエリの整形、コードレビュー前の書式統一、圧縮されたマイグレーションスクリプトを読みやすい形に戻すことなどです。命名規則やコメントの書き方など、整形だけでは対応できないスタイルの決まりごとについては、SQL Style Guideを参照してください。