0 行 / 0 B
0 行 / 0 B
⚙️整形の設定
📁ファイルから読み込む
圧縮では、改行とインデントを詰めて1行にします。文字列リテラルの中身とコメントの扱いは保たれます。
長いSQLを読める形に整えて、レビューしやすく
0 行 / 0 B
0 行 / 0 B
圧縮では、改行とインデントを詰めて1行にします。文字列リテラルの中身とコメントの扱いは保たれます。
SQL整形ツールは、1行に伸びた長いSQLを、句ごとに改行してインデントを付けた読みやすい形に整えるツールです。逆に1行へ詰めることもできます。
アプリケーションのログに出力されたSQLや、ORMが生成したSQLは改行がなく、JOINやサブクエリが増えると構造を追えなくなります。整形するとSELECT・FROM・WHERE・GROUP BYの区切りが明確になり、レビューや実行計画の検討がしやすくなります。
MySQL・PostgreSQL・SQLite・BigQuery・Snowflake・SQL Server など方言を選べるので、その方言に固有の構文も崩さずに整形できます。予約語を大文字に統一する指定にも対応しています。
標準SQLの範囲であれば「標準SQL」のままで問題ありません。BigQueryのバッククォート付き識別子や、SQL Serverの角括弧など、方言に固有の記法を含む場合は該当するものを選んでください。選択が合っていないと、識別子が意図せず分割されることがあります。
? や :name、$1 といった一般的なプレースホルダはそのまま保持されます。ORMが出力する特殊な記法は、方言の選択によっては認識されない場合があります。
ありません。整形も圧縮も、シングルクォートで囲まれた文字列リテラルの中身には手を加えません。予約語の大文字化も、文字列の外だけが対象です。
できません。このツールは書式を整えるだけで、SQLの妥当性は検証しません。実行できるかどうかは、実際のデータベースでお確かめください。
整形ツールに任せる前提でも、いくつか意識しておくと差が出ます。テーブルには短い別名を付けてカラムを u.name のように修飾する、SELECT * ではなく必要な列を明示する、条件が増えたらサブクエリではなくCTE(WITH 句)に切り出す。特にCTEは、整形したときに処理の段階が上から順に並ぶため、長いクエリの見通しが大きく良くなります。