読めない1行SQLを整形。JOINとWHEREがどこで分かれるか試した

机に置かれたスマートフォンと周辺機器のイメージ写真 ソフトウェア
イメージ写真。記事で紹介する実機・画面ではありません。写真:Unsplash(配布ページ) / Unsplash License

この記事のポイント

  • 1行SQLがSELECT・JOIN・WHEREごとに分かれた
  • キーワード大文字、字下げ2文字の設定を使った
  • 整形は読みやすさを変えるがクエリーの正しさは検証しない

サムネイルはイメージ写真。写真の配布元:Unsplash(利用許諾)。本文の画面は実際の操作時に撮影した。

sqlformat.orgで商品と注文を結合する1行SQLが句ごとに改行された結果画面
SELECT、FROM、LEFT JOIN、WHERE、GROUP BY、ORDER BYが分かれる形へ整形された。キーワードは大文字、字下げは2文字に設定。
検証環境:2026年10月10日、WindowsのCodex内蔵Chromium。sqlformat.orgを無料・未ログインで利用し、KeywordsはUpper case、Indentationは2にした。

商品名と注文数を集計するSQLを1行で入力した。Formatを押すと、SELECT、FROM、LEFT JOIN、WHERE、GROUP BY、ORDER BYが見分けやすい形へ改行された。

どの表を結合し、どの条件で絞り、何を集計して並べるかが、句の境界を追うだけで読めるようになった。長いSQLのレビュー前に構造を把握するには便利である。

操作手順

  1. sqlformat.orgを開く。
  2. 上部の入力欄へ1行SQLを貼る。
  3. KeywordsをUpper case、IdentifiersをUnchanged、Indentationを2にする。
  4. Formatを押し、下に出る結果を確認する。

整形しても意味は検証されない

今回の結果では各句が分かれ、count(o.id) AS ordersの別名も読めるようになった。一方、存在しない列名、誤った結合条件、期待と違う集計結果は整形だけでは判定できない。実行計画やテストデータによる確認は別に必要である。

sqlformat.orgは画面上でPyodideとsqlparseを使い、SQLをブラウザー内で処理すると説明している。社内SQLを扱う場合でも、組織のデータ取扱規則と利用ツールの実装を確認してから使うべきだろう。

出典・確認先

コメント

タイトルとURLをコピーしました