1. SQLを整形する理由
1行で書かれたSQLやORMが生成したSQLは、結合(JOIN)が増えるほど読みにくくなります。句(SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BYなど)ごとに改行してインデントを揃えると、どのテーブルをどの条件で結合しているか、WHERE条件は何かが一目で把握でき、コードレビューやデバッグが速くなります。
一般的なSQLを句ごとの改行とインデントで整形します。対応しているSQLは1行に圧縮できます。圧縮するとコメントは削除されます。キーワードの大文字化は任意です。
このツールはSQLを整形しますが、検証、データベース固有の互換性確認、クエリの意味の確認は行いません。
SQLはこのデバイス上でのみ処理されます。
長い結果は先頭部分のみ表示しています。コピーすると全文を取得できます。
1行で書かれたSQLやORMが生成したSQLは、結合(JOIN)が増えるほど読みにくくなります。句(SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BYなど)ごとに改行してインデントを揃えると、どのテーブルをどの条件で結合しているか、WHERE条件は何かが一目で把握でき、コードレビューやデバッグが速くなります。
このフォーマッターはSELECT、FROM、WHERE、JOINなどの句の前で改行し、ANDとORを1段階インデントして条件を分けます。カンマ区切りのリストは1行ずつに配置し、括弧内の内容はさらに1段階インデントします。SQLのバリデーターでも、すべての方言を解析するパーサーでもなく、トークンを整形するツールです。名前付きパラメーターやベンダー固有のリテラルなど、安全に保持できない構文はエラーになります。その場合はクエリを変更せず、その構文に対応したSQLツールで元のクエリを使ってください。
圧縮(minify)はコメントを削除し、不要な空白・改行をなくして1行にまとめます。ログにクエリを残したり、ストアドプロシージャ・マイグレーションスクリプトのサイズを縮小したり、他のツールに貼り付けるために1行が必要な場合に便利です。文字列リテラル(引用符で囲まれた値)の内容はそのまま保持されるため、データの値が壊れることはありません。