SQLフォーマッターとは
「SQLフォーマッター」は、乱雑なSQLコードを瞬時に読みやすく整形するための無料オンラインツールです。さらに、整形されたSQLの各部分がどのような処理を行っているかを、句(クローズ)ごとに分かりやすい言葉で解説する機能も備えています。
これらの整形および解説処理は、ユーザーのブラウザ上で即座に実行されます。開発者、データアナリスト、データベース管理者(DBA)、サポート担当者をはじめ、複雑なSQLをきれいに整理したい方や、クエリの挙動を句ごとに詳しく理解したいすべての方に最適なツールです。
主な入力機能とカスタマイズ
本ツールでは、お使いの環境や好みに合わせて以下の設定をカスタマイズできます。
- SQL入力: 整形したいSQLクエリを入力します。入力できる最大文字数は300,000文字です。
- 方言 (Dialect): 以下の10種類の方言から、対象のSQLに合わせたものを選択できます。
- 標準SQL
- PostgreSQL
- MySQL
- MariaDB
- SQL Server (T-SQL)
- Oracle (PL/SQL)
- SQLite
- BigQuery
- Snowflake
- Spark SQL
- インデント: 整形時のインデントスタイルを「2スペース」、「4スペース」、「タブ」から選択できます。
- キーワード: SQLキーワードの大文字・小文字を「大文字」、「小文字」、または「そのまま」から指定できます。
出力情報とクエリ解説機能
SQLの整形が完了すると、以下の出力結果と統計情報が表示されます。
- 整形結果: 指定した方言やスタイルに従って美しく整形されたSQLクエリ。
- 行数: 整形後のSQLの行数。
- 文字数: 整形後のSQLの文字数。
- サイズ: 整形後のSQLのデータサイズ。
- クエリ解説: クエリが実行する内容をステートメントや句ごとに分解して説明します。
ステートメントの種類(種類)の解説
複数ステートメントが含まれる場合は「ステートメント {n}」として個別にラベルが付き、それぞれの全体的な役割を以下のように分類して解説します。
- データを変更せずに、行を読み取って返すクエリです。(SELECT)
- テーブルに新しい行を追加します。(INSERT)
- 既存の行の値を変更します。(UPDATE)
- テーブルから行を削除します。(DELETE)
- テーブル、ビュー、インデックスなどの新しいオブジェクトを定義します。(CREATE)
- 既存のオブジェクトの定義を変更します。(ALTER)
- データベースからオブジェクトを完全に削除します。(DROP)
- テーブルを空にし、すべての行を削除します。(TRUNCATE)
- 後続のクエリで使用する名前付き一時結果セット(CTE)を構築します。(WITH)
- 挿入、更新、削除の操作を1つの処理にまとめて実行します。(MERGE)
- SQLステートメント。(その他)
各句の役割(役割)の解説
ステートメント内の各構成要素について、その具体的な役割を分かりやすく説明します。
- 返されるカラムや式。(SELECT)
- 重複する行を除外して返されるカラム。(SELECT DISTINCT)
- データを読み取る対象のテーブル(またはサブクエリ)。(FROM)
- 各行を、別のテーブルの一致する行と結合します。(JOIN)
- この条件に一致する行のみを抽出します。(WHERE)
- 行をグループにまとめ、グループごとに関数(COUNTやSUMなど)を集計できるようにします。(GROUP BY)
- 集計関数が計算された後に、それらのグループをフィルタリングします。(HAVING)
- 取得された行をソートします。(ORDER BY)
- 返される最大行数を制限します。(LIMIT)
- 結果を返す前に、指定された行数をスキップします。(OFFSET)
- この結果を別のクエリの結果と結合します。(UNION)
- 挿入される行の値。(VALUES)
- 新しい行が挿入されるテーブル。(INTO)
- 新しく設定されるカラムの値。(SET)
- 行が変更される対象のテーブル。(UPDATE)
- 行を削除する対象のテーブル。(DELETE FROM)
- 以降の処理で使用される名前付き一時結果セットを定義します。(WITH)
- そのまま表示されるステートメント。(STATEMENT)
動作ルールとエラー時の挙動
ツールを快適にご利用いただくために、以下の仕様と制限事項が設けられています。
- サイズ制限: 入力されたSQLが300,000文字を超えている場合、「クエリのサイズが大きすぎるため処理できません。より小さいファイルでお試しください。」というメッセージが表示されます。
- 構文エラー: 入力されたSQLに構文上の誤りがある場合、「SQLを整形できませんでした。構文を確認してください。」と表示されます。このエラーが発生しても、それまで表示されていた直前の出力結果がエラーメッセージに置き換わって消えることはありません。
- クリア機能: 「クリア」ボタンをクリックすると、入力エリアと出力エリアがすべて空になり、エラー詳細も非表示となって「クリアされました。」と表示されます。
- 解説の制限: 解析できるステートメントは最大25件までです。25件を超えるステートメントが含まれるクエリの場合、最初の25件のみが解説され、「最初の25件のみ表示されています。」という注記が添えられます。
- ローカル保存: ユーザーが作成した下書き(ドラフト)やテーマの環境設定は、ブラウザのローカル領域に自動的に保存されます。
セキュリティとプライバシーについて
本ツールでは、入力されたSQLの整形および解析処理がすべてユーザーのブラウザ上で行われます。データが外部の「BroBroGo」サーバーにアップロードされたり、ページの外に送信されたりすることは一切ありません。機密性の高い本番環境のクエリであっても、安心してそのまま貼り付けてご利用いただけます。
よくある質問(FAQ)
どのSQL方言(Dialect)の整形に対応していますか?
標準SQL、PostgreSQL、MySQL、MariaDB、SQL Server (T-SQL)、Oracle (PL/SQL)、SQLite、BigQuery、Snowflake、およびSpark SQLに対応しています。キーワードやクォーテーションが各データベースエンジンに適した方法で処理されるよう、お使いのデータベースに合わせた方言を選択してください。
「クエリ解説」機能はどのように動作しますか?
クエリの構造(ステートメントの種類、およびSELECT、FROM、JOIN、WHERE、GROUP BY、ORDER BYなどの各句)を読み取り、それぞれの役割を分かりやすく解説します。これはデータベースの実行計画(Execution Plan)ではなく、クエリ自体の構造を説明するものであるため、不完全なSQLや特定のベンダー固有のSQLでも動作します。
本番環境のクエリを貼り付けても安全ですか?
はい、安全です。整形および解析処理はすべてお使いのブラウザ上で実行され、SQLデータが外部に送信されることはありません。