SQL整形ツール
1行のクエリを、句ごとに改行され、キーワードも好みの書き方にそろった読みやすいSQLに変えます。
入力
出力
SQLをオンラインで整形
アプリケーションのログ、ORMのデバッグ出力、同僚のメッセージからコピーしたクエリは、たいてい長い1行です。そのままではレビューもデバッグも時間がかかり、ミスも起こりがちです。このページはSQLに設定したコード整形ツールで、オープンソースのsql-formatterライブラリをブラウザー内で使います。
整形の前と後
クエリselect id, name from users where active = 1 and role in ('admin','editor') order by nameは、ログによくある1行のクエリです。
整形すると、SELECT、FROM、WHERE、ORDER BYがそれぞれ独立した行になり、idとnameはSELECTの下で別々の行にインデントされます。active = 1とAND role IN ('admin', 'editor')はWHEREの下にインデントされるので、条件を1つずつ読んだり、コメントアウトしたり、変更したりできます。
方言が重要な理由
| 構文 | 方言 |
|---|---|
`backtick names` | MySQL、MariaDB |
[bracket names] | SQL Server |
value::integerによるキャスト | PostgreSQL |
LIMIT、TOP、FETCH FIRST | データベースごとに異なる |
正しい方言を選べば、整形ツールはこれらの書き方をエラーとして扱わずに認識できます。
スタイルのヒント
- キーワードを大文字にすると、長いクエリの構造がひと目でわかります。多くのチームで必須とされています。
- 1行に1列にすると、コードレビューの差分で、どの列が変わったのかが正確にわかります。
- 整形したSQLをバージョン管理に保存し、1行が必要な場面でだけ圧縮しましょう。
関連ツール
クエリの2つのバージョンを比べるには、テキスト比較ツールを使ってください。クエリが返したJSONは、JSON整形ツールで読みやすくできます。