Tool overview
SQL フォーマッタとは?
SQL フォーマッタは、キーワードの大文字小文字を整え SQL クエリを整形・圧縮ための開発者向けツールです。
なぜSQL フォーマッタを使うのか?
キーワードの大文字小文字を整え SQL クエリを整形・圧縮際の可読性と作業速度を向上させ、データをサーバーに送信しません。
主な機能
クライアントサイドのプライバシー、即座の結果、ワンクリックコピー。キーワードの大文字小文字を整え SQL クエリを整形・圧縮
使い方
上のツールで正確な結果を得るための手順です。
- 左パネルに SQL を貼り付け、.sql をアップロードするか、空状態にドラッグ&ドロップします。
- ヘッダーのドロップダウンで方言を選択(13 種: Postgres、Snowflake、BigQuery、Spark、Oracle PL/SQL など)。
- Strip comments で出力前に -- と /* */ を削除。Beautify でインデント SQL、Minify で 1 行。
- 整形済み SQL をマイグレーション、ORM、ウェアハウスワークシート、埋め込み文字列、ドキュメントにコピーします。
SQL Formatter リファレンス
方言一覧、ワークスペースコントロール、Beautify と Minify の動作、ユースケース、コメント削除ルール。
SQL Formatter ガイド — ここから始める
このページは Dev Tools Suite で SQL を整形・minify する正規ガイドです。読みながら上の SQL Formatter を使うか、下のセクションにジャンプしてください。解析と整形はブラウザ内の sql-formatter で実行され、クエリ・スキーマ名・サンプルデータはサーバーにアップロードされません。
SQL Formatter の役割
SQL Formatter は人間向けに複数行 SQL を beautify し、転送向けに minify します。キーワードを自動で大文字化(SELECT, FROM, WHERE)し、句を意識したインデントを適用し、sql-formatter ライブラリの方言別文法に従います — 多くの IDE 拡張や CLI フォーマッタと同じエンジンです。
得られるもの
- 対称デュアルペイン: 左に SQL 入力、右に整形または minify 出力
- コアリレーショナル、クラウドウェアハウス、ビッグデータ、エンタープライズに分類された 13 方言パーサー
- Beautify / Minify モード、ライブ自動整形(デバウンス)、明示的 Process ボタン
- パネルヘッダーの方言ピッカーと Strip comments — エディタ高さを奪う余分行なし
- 大きな SELECT ツリー向け折りたたみ出力(Beautify)
- 方言パーサーが読めないときの行・列ヒント付きパースエラー
- 任意の URL 共有: ?mode=minify&dialect=postgresql でモードと方言を保持
このツールを使う場面
- ログ、BI、ORM からの即席 SQL をレビュー前に読みやすくしたい
- アプリコードに埋め込む 1 行 minify 文字列が欲しい
- PostgreSQL、Snowflake、BigQuery、Spark、Oracle で方言キーワードを認識させたい
- コミットや送信前にブロック・行コメントを除去したい
期待しないこと
- 意味的検証 — 整形成功はサーバー実行成功を意味しない
- 自動クエリ計画、パフォーマンス lint、スキーマ認識リライト
- 選択方言でカバーされないベンダー拡張の完全保持
- サーバー側 EXPLAIN や実行 — レイアウトと空白のツールのみ
ワークスペースレイアウトとヘッダーコントロール
コントロールは SQL QUERY パネルヘッダーにあり、入出力エディタの高さを揃えます。ツールバー下に別オプション行はありません。
ヘッダーコントロール(左パネル)
| コントロール | 位置 | 機能 |
|---|---|---|
| Dialect dropdown | ヘッダー、モードタブの左 | sql-formatter 言語パーサーを選択(コア、クラウド、ビッグデータ、エンタープライズでグループ化) |
| Strip comments | ヘッダーチェックボックス | オン時、Beautify / Minify 前に --、/* */、方言固有コメントを削除 |
| Beautify / Minify | ヘッダーモードタブ | Beautify はインデントと大文字キーワード、Minify は空白を圧縮 |
| Process | ヘッダー主ボタン | 即時再整形(Ctrl/Cmd+Enter も可)。入力やオプション変更後 ~350ms で自動整形 |
| Swap | 中央ディバイダー | 出力を入力に移し現在モードで再処理 |
キーボードショートカット
- Ctrl/Cmd+Enter — Process
- Ctrl/Cmd+L — ワークスペースをクリア
対応 SQL 方言(13 パーサー)
実行環境に合う方言を常に選んでください。パーサーは方言ごとにキーワード、関数名、コメント規則が異なります。汎用 ANSI 断片には Standard SQL が安全なデフォルトです。
対応方言
| グループ | 方言 | sql-formatter id | 典型的な用途 |
|---|---|---|---|
| コア | Standard SQL | sql | 汎用 ANSI クエリ |
| コア | PostgreSQL | postgresql | Postgres、Supabase、Cockroach(近似) |
| コア | T-SQL / SQL Server | transactsql | Microsoft SQL Server、Azure SQL |
| コア | MySQL / MariaDB | mysql | MySQL、MariaDB(# コメント) |
| コア | SQLite | sqlite | SQLite、モバイル/ローカル DB |
| クラウド | Snowflake | snowflake | Snowflake ワークシート、Snowflake 上の dbt |
| クラウド | Google BigQuery | bigquery | BigQuery コンソール、スケジュールクエリ |
| クラウド | Amazon Redshift | redshift | Redshift、Postgres 互換ウェアハウス SQL |
| ビッグデータ | Spark SQL | spark | Databricks、Spark SQL ノートブック |
| ビッグデータ | Trino / Presto | trino | Trino、Presto、連合クエリエンジン |
| ビッグデータ | Apache Hive | hive | HiveQL、レガシー Hadoop |
| エンタープライズ | Oracle PL/SQL | plsql | Oracle Database プロシージャと SQL*Plus スクリプト |
| エンタープライズ | IBM DB2 | db2 | Db2 LUW とエンタープライズウェアハウス |
Cassandra CQL は非対応 — sql-formatter 方言セットに含まれません。Cassandra には CQL 専用フォーマッタを使用してください。
Beautify vs Minify — どちらのモードを使うか
Beautify と Minify は同じ方言ピッカーと Strip comments を共有しますが、出力形状が異なります。
モード比較
| Beautify | Minify | |
|---|---|---|
| 出力形状 | 複数行、インデント付き | 1 行(空白圧縮) |
| キーワード | 大文字(SELECT, FROM, …) | コメント除去以外は元の大文字小文字 |
| コメント(Strip off) | 整形前に除去 | 空白のみ圧縮 |
| コメント(Strip on) | 除去 | 除去 |
| 向いている用途 | ドキュメント、マイグレーション、コードレビュー | 埋め込み文字列、ログ、ペイロードサイズ |
| 出力ビュー | 大きなクエリ向け折りたたみツリー | プレーンテキスト出力 |
例
入力: select id, name from users where active = 1 — Beautify は SELECT / FROM / WHERE 大文字のインデント行を生成。Strip オフの Minify は 1 行: select id, name from users where active = 1。
手順: ブラウザで SQL を整形
- サイドバーの Formatters から SQL Formatter を開く。
- 左エディタに SQL を貼り付け、セッションツールバーから .sql をアップロード、または空状態にドラッグ&ドロップ。
- データベースに合う方言を選択(例: Snowflake ワークシートなら snowflake)。
- 出力に不要な -- や /* */ がある場合は Strip comments をオン。
- 読みやすい SQL は Beautify、コンパクト 1 行は Minify。
- 右の出力を確認。パースエラーバナーを修正 — 編集後クリックで閉じる。
- コピー、ダウンロード、または出力を入力にスワップして再実行。
- 同じ設定を共有するには ?dialect=bigquery&mode=minify のリンクを共有。
ユースケース: マイグレーションファイルと ORM
Flyway、Liquibase、ORM のマイグレーションファイルは、SELECT リスト、JOIN、WHERE が一貫した行に分かれるとレビューしやすくなります。
ワークフロー
- マイグレーション先に合わせ postgresql、transactsql、mysql、sqlite を設定。
- 生成 diff や ORM 出力から生のマイグレーション SQL を貼り付け。
- 意図を示すインラインコメントがある場合は Strip オフで Beautify。
- PR 前に整形 SQL をマイグレーションファイルに戻す。
ヒント
整形はライブスキーマを検証しません。見た目変更後はステージング DB でマイグレーションを実行してください。
ユースケース: Snowflake、BigQuery、Spark SQL
アナリティクスエンジニアは Snowflake、BigQuery、Redshift コンソールから大文字小文字や改行が不揃いな SQL をよくコピーします。
Snowflake / BigQuery / Redshift
- ウェアハウス関数を正しくパースするため Beautify 前に snowflake、bigquery、redshift を選択。
- ノートブックの -- セッションメモを含むエクスポートでは Strip comments を使用。
- 非常に広い SELECT リストは Beautify 後に Expand all / Collapse all を使用。
Spark / Trino / Hive
- Databricks ノートブックと Spark SQL パイプラインには spark。
- カタログ横断の Presto 互換連合クエリには trino。
- レガシー HiveQL には hive — カバレッジは sql-formatter Hive 方言規則に従う。
ユースケース: 埋め込み文字列向け SQL の minify
アプリコードは SQL をテンプレート文字列として保持することが多いです。Minify は JavaScript、Python、Go 内の 1 行向けにバイトとエスケープを削減します。
- 読みやすい SQL を入力パネルに貼り付け。
- デバッグメモが残っていれば Strip comments を有効化。
- Minify モードに切り替え。
- 1 行出力を文字列リテラルにコピー(言語ごとのクォートエスケープに注意)。
ソースでは読みやすく実行時はコンパクトにしたい場合、beautify 版をドキュメントに残し、ビルド成果物だけ minify してください。
ユースケース: PR とコードレビューの整理
レビュー前に SQL を正規化し、差分がロジックに集中するようにします。
- チケットに 1 行 SQL が貼られた比較では両側を beautify。
- 大文字キーワードを一貫スタイルに — Beautify で自動適用。
- 2 版を整形後 Text Diff にパイプして意味的なクエリ差分が必要な場合。
Strip comments — 方言別の動作
Strip comments は Beautify と Minify の両方に適用されます。オン時は実装されている方言対応規則で整形前にコメントを削除します。
コメント削除の動作
| 構文 | Strip オン時の扱い |
|---|---|
| -- 行コメント | はい(スペースに置換後、空白を正規化) |
| /* ブロックコメント */ | はい |
| MySQL # コメント | 方言が mysql のときはい |
| PostgreSQL $$ ドルクォート | 保持 — $$…$$ 内はコメント扱いしない |
| Redshift ドルクォート | PostgreSQL 方言と同様に保持 |
Strip オフ時(Minify)
Minify は 1 行に空白を圧縮しますがコメント本文は残します。コメントをクエリと一緒に送る場合に使用。
修正: パースエラーと行ヒント
パーサー失敗時、赤バナーに行・列付き Parse error が表示されます。利用可能なら入力エディタがエラー行をハイライトします。
よくある修正
- 方言不一致 — 実際のエンジンに切り替え(Oracle パッケージは plsql、Standard SQL ではない)。
- 未閉じ文字列や括弧 — 報告行付近でクォートと括弧を整合。
- 末尾カンマや未完成句 — SELECT リストと CTE を完成してから整形。
- 非 SQL が貼られた — クエリ周りのシェルや JSON ラッパーを除去。
- 汎用モードでの方言固有構文 — ベンダー方言を試すか未対応拡張を簡略化。
有効なクエリがまだ失敗する場合、その構文変種を sql-formatter がカバーしていない可能性があります。上流に報告するか簡略部分を手動整形してください。
プライバシー — クエリはブラウザ内に留まる
SQL Formatter は 100% ブラウザ内で動作します。sql-formatter ライブラリは動的ロードされ、メインスレッドの JavaScript で整形します。
- クエリ本文は Dev Tools Suite サーバーに送信されない
- 入力、出力、方言、Strip comments 設定はデバイスの localStorage に保存可能
- URL クエリ(?dialect=、?mode=)は設定のみ — SQL 本文は含まない
- 本番データや PII 作業後はワークスペースをクリア(Ctrl/Cmd+L)
SQL 整形のベストプラクティス
- Beautify 前に実行環境と方言を一致 — 整形成功 ≠ 実行成功
- 人間向け Beautify、機械向け Minify
- ビジネスルールをコメントで残すときは Strip オフ、エクスポートと埋め込みではオン
- ドルクォートや特殊リテラルがある minify 出力はステージングで検証
- 大きなスクリプトはチャットアプリへの貼り付けではなくセッション履歴とファイルアップロードを使用
- 同じレポートクエリの 2 整形版比較には Text Diff と組み合わせ
よくある質問
一般的なトラブルとデータプライバシーに関する回答です。
関連ツール
このツールを補完する関連ユーティリティをご覧ください。
公式ドキュメントと参照
このユーティリティの公式仕様とプラットフォーム文書です。