
SQLのプリティプリントとは、クエリをひと目で構造が分かるように再フォーマットすることです:キーワードを揃え、句を個別の行に配置し、ネストされた条件をインデントし、カラムのリストをきれいに並べます。どちらの形式でもクエリの実行結果は同じです — データベースは空白を無視します — しかし、フォーマットされたクエリは人間が読み、確認し、デバッグするのが格段に容易になります。
実際のところ、SQLが汚い形で届くことは日常茶飯事です。ORMによって生成され、ログからコピーされ、チャットメッセージから貼り付けられ、急いで書かれてそのままになっています。3つのJOINとネストされたサブクエリを含む300文字の1行SELECTは、テキストの壁です。フォーマットすることで、実際に論理的に考えられるものになります。
フォーマットされていないクエリはこのような見た目です:「select u.id, u.name, o.total from users u join orders o on o.user_id = u.id where o.status = 'paid' and o.total > 100 order by o.total desc」。正しいクエリですが、単語ごとにパースしなければなりません。
プリティプリントすると、各句が独自の行に配置されます — SELECTとそのカラム、FROM、ON条件を持つJOIN、フィルターを持つWHERE、最後にORDER BY。クエリの形が明確になり、JOINの条件の欠落や誤った位置のフィルターが、行の中央に隠れるのではなく、目立つようになります。
MySQL、PostgreSQL、SQL Server、Oracleは同じコア構文を共有していますが、引用スタイル、特定の関数、一部のキーワードなど細部が異なります。優れたフォーマッターはこれらのダイアレクトを理解するので、ダイアレクト固有の構文を壊すことなく正しくインデントと整列を行います。複数のデータベースを扱う場合は、ダイアレクトを選択できるフォーマッターを選びましょう。
クエリには、外部のサーバーに貼り付けたくないテーブル名、カラム名、構造が含まれることがよくあります。完全にクライアントサイドで動作するフォーマッターは、クエリをあなたのマシン上に保持します — 何もアップロードされないため、SQLが機密性の高いデータに触れる場合でも安心です。
無料のSQLフォーマッターを開く — クエリを貼り付けるだけで即座に整形、インデント、整列が完了します。MySQL、PostgreSQL、SQL Server、Oracleに対応。サインアップ不要、ブラウザから外部へのデータ送信なし。