SQL
SQL
SQL整形ツールについて
SQL整形ツールについて
概要
SQLフォーマッターは、読みにくいSQLクエリを整形・可読化するオンラインツールです。JOIN、WHERE、GROUP BYなどのキーワードを適切なインデントで整列させ、コードレビューやドキュメント作成を効率化します。
ORMやBIツールが自動生成するSQLは1行に連結されていることが多く、JOIN条件やサブクエリの入れ子構造を目で追うのが困難です。手作業でインデントを揃え直すのは時間がかかるうえ、SELECT句のカラム数が多いクエリでは特に骨が折れます。本ツールはそうした整形作業を数秒で終わらせ、レビューやチューニングに集中できるようにします。
使い方
- 1テキストエリアにSQLクエリを貼り付けます。
- 2「インデント」でスペース数を選択します。
- 3「モード」で整形方法(標準整形 / 右揃え/表形式 / 圧縮)を選択します。
- 4「予約語」・「識別子」で大文字 / 小文字 / 変更しない を選択します。
- 5「変換」ボタンをクリックすると整形結果が表示されます。
補足: 複数のSQL文をセミコロン区切りで一括貼り付けても整形できます。マイグレーションファイルなど、複数のCREATE TABLE文をまとめて確認したい場合に活用してください。
仕様・用語解説
- 「モード」: 整形方法の選択
- 「標準整形」: 各キーワードを改行・インデントして読みやすく整形します。
- 「右揃え/表形式」: キーワードを右揃えでタブ状に整列し、SQLキーワードが縦に並びます。
- 「圧縮」: 改行・余分なスペースを除去して1行に圧縮します。
- 「予約語」: SQLキーワードの大文字/小文字変換
- 「大文字」: SELECT、FROMなどのSQLキーワードをすべて大文字に変換します。
- 「小文字」: SQLキーワードをすべて小文字に変換します。
- 「変更しない」: 入力のケースをそのまま保持します。
- 「識別子」: テーブル名やカラム名の大文字/小文字を変換します。大文字 / 小文字 / 変更しない から選択できます。
- 「インデント」: 出力するSQLのインデントに使用するスペース数を設定します(例: 2スペース、4スペース)。
- 対応SQL方言について: 本ツールはMySQL・PostgreSQL・SQLiteなど主要な方言に共通する標準的なSQL構文(SELECT / INSERT / UPDATE / DELETE / CREATE TABLE等)の整形に対応しています。ただし、PL/pgSQLのストアドプロシージャや、T-SQL固有のBEGIN...END構文など、方言に強く依存する拡張構文は整形結果が崩れる場合があります。
- コメントの扱い: 行コメント(--)およびブロックコメント(/* */)は、位置情報を保持したまま整形後のクエリに引き継がれます。ORMが自動生成したクエリに付与されるバインドパラメータのコメントなどもそのまま残ります。
ユースケース
- コードレビュー前にSQLを整理して可読性を向上させたい場合。
- ORMが自動生成したクエリのデバッグ・解析時。
- ドキュメント用に整形されたSQLスニペットを作成したい場合。
- ORMが生成したSQLに混在するバインドパラメータやコメントが多く読みにくい場合の整理。
- 複数テーブルを結合した「SELECT * FROM orders o JOIN users u ON o.user_id = u.id JOIN items i ON o.item_id = i.id WHERE...」のような1行クエリを整形し、JOIN条件の対応関係を確認しながらパフォーマンスチューニングを行う場合。
- スロークエリログに出力された整形前のSQLを貼り付けて可読化し、実行計画(EXPLAIN)を確認する前の下調べとして使う場合。
よくある質問
- MySQL・PostgreSQL・SQL Serverのどの方言に対応していますか
- 主要な方言に共通する標準SQL構文の整形に対応しています。方言固有の拡張構文(PL/pgSQLのプロシージャ、T-SQLのBEGIN...END、MySQLのバッククォート識別子など)は整形結果が意図と異なる場合があるため、整形後は必ず内容を確認してください。
- 貼り付けたSQLに含まれるテーブル名やデータはサーバーに送信されますか
- いいえ。整形処理はブラウザ内で完結しており、入力したSQLが外部に送信されることはありません。本番データベースのスキーマ情報を含むクエリでも安心してご利用いただけます。
- ストアドプロシージャやトリガーの定義も整形できますか
- 単純なDML/DDL文の整形を主眼としているため、ストアドプロシージャやトリガーに含まれる制御構文(IF、LOOP、CURSORなど)は正しく整形されない場合があります。SELECT文などクエリ本体部分のみを抜き出してご利用ください。
- 複数のSQL文をまとめて整形できますか
- はい。セミコロンで区切られた複数のSQL文を一度に貼り付けると、それぞれが個別に整形されます。マイグレーションファイルのように複数のCREATE TABLE文が並んでいる場合にも利用できます。
- 「右揃え/表形式」モードはどのような場面で使うと便利ですか
- SELECT・FROM・WHEREなどのキーワードを右揃えで縦に整列させるため、キーワードの位置が視覚的に揃い、条件句が多い長いクエリでも構造を把握しやすくなります。ドキュメントやプレゼン資料にSQLを掲載する際にもよく使われます。
- 整形結果の予約語が想定と異なる大文字/小文字になるのはなぜですか
- 「予約語」オプションが「大文字」または「小文字」に設定されている場合、SELECTやFROMなどのSQLキーワードが自動的に変換されます。入力時のケースをそのまま維持したい場合は「変更しない」を選択してください。