SQL フォーマッター
SQL を貼り付けると、DevKitLab が選択した方言に合わせて再インデントし、句を整列し、キーワードの大文字小文字を整え、解析エラーがあれば行と列を表示します。MySQL、PostgreSQL、SQLite、BigQuery、Snowflake、Redshift、Oracle PL/SQL、SQL Server など十数種の方言に対応し、インデント幅、キーワードと識別子の大文字小文字、論理演算子の改行位置を切り替えたり、一行に圧縮してコピーすることもできます。すべての処理はブラウザ内で完結し、SQL は外部に送信されません。
- MySQL、PostgreSQL、SQLite、BigQuery、Snowflake、Redshift、Oracle、SQL Server、Spark、Trino など十数種の方言に対応
- キーワードと識別子の大文字小文字をそれぞれ独立して保持・大文字・小文字に切り替え可能
- インデント幅は 2 スペース、4 スペース、タブから選択でき、標準・表組み左・表組み右の3レイアウトを用意
- AND や OR の論理演算子は改行を前後どちらに置くか選べ、チームスタイルに合わせやすい
- フォーマット済みの読みやすい版と、一行に圧縮した版をワンクリックでコピー可能
- .sql ファイルのアップロードと整形結果のダウンロードに対応し、マイグレーション整理にも便利
- 解析失敗時には行と列、エラー説明を表示するので、複数文や長いクエリでも問題を特定しやすい
- 完全ローカル処理:クエリ、テーブル名、スキーマ、サンプル値は外部に送信されません
概要
この SQL ツールは選択した方言に従ってクエリを再整形し、句のインデント、列の整列、キーワードの大文字小文字、論理演算子の改行、そして一行への圧縮モードを扱います。クエリのデバッグ、SQL レビュー、マイグレーション整理、ORM パラメータの確認に向いています。
- 01
多方言整形
MySQL、PostgreSQL、SQLite、MariaDB、TiDB、BigQuery、Snowflake、Redshift、Oracle PL/SQL、SQL Server (Transact-SQL)、Spark、Trino、Hive、ClickHouse、DuckDB、Couchbase N1QL、IBM Db2 などを内蔵し、それぞれのキーワード集合で整形します。
- 02
キーワードと識別子の大文字小文字
SELECT、FROM、WHERE などのキーワードと、テーブル名や列名などの識別子について、保持・大文字・小文字を独立に設定でき、チームの規約に合わせられます。
- 03
インデント幅とレイアウト
2 スペース、4 スペース、タブから選び、標準・表組み左揃え・表組み右揃えと組み合わせます。表組みレイアウトはキーワードを列ごとに揃えるので、複雑な SELECT に向いています。
- 04
論理演算子の改行位置
AND や OR を次の行の先頭に置くか、前の行の末尾に置くかを選択でき、チームの SQL スタイルに合わせられます。
- 05
一行コンパクト
圧縮版をコピーすると複数行 SQL が一行にまとまります。ORM 呼び出し、ログフィールド、コマンドラインなど一行クエリしか受け取れない用途に最適です。
- 06
エラー位置の表示
sql-formatter が解析に失敗した場合、ステータスバッジに行と列、エラーメッセージが表示され、欠落した括弧や方言が認識しない構文を特定しやすくなります。
- 07
文間の空行
複数文の間に挟む空行の数を調整でき、マイグレーション、初期化スクリプト、テストフィクスチャを引き締めたりブロック化したりできます。
- 08
ファイルのアップロードとダウンロード
ローカルの .sql / .txt を読み込んで整形でき、整形結果を .sql としてダウンロードできるので、マイグレーションツールやバージョン管理と組み合わせやすくなります。
- 09
完全ローカル処理
解析、整形、圧縮、ファイル読み込み、ダウンロードはすべてブラウザ内で完結します。クエリ、スキーマ、テーブル名、サンプル値は外部に送信されません。
使い方
一般的な流れは、方言を選ぶ、SQL を貼り付ける、大文字小文字とインデントを調整する、整形版または圧縮版をコピーする、というものです。
- 01
下部で対象の方言(MySQL、PostgreSQL、SQLite、BigQuery など)を選びます。方言はキーワードの認識にだけ影響し、意味は変えません。
- 02
SELECT、JOIN、UPDATE、INSERT、マイグレーション、ORM 生成 SQL を左のエリアに貼り付けます。ローカルの .sql ファイルを読み込むこともできます。
- 03
キーワードと識別子の大文字小文字、インデント幅、レイアウトを調整します。表組みレイアウトは複雑な SELECT に、標準は複数文スクリプトに向きます。
- 04
チームが行頭の AND / OR を好む場合は論理演算子の改行を前で改行に、そうでなければ後で改行に切り替えます。
- 05
右側の整形結果を確認します。解析に失敗した場合は、下部のバッジに表示される行・列とエラーメッセージを参考に元 SQL を修正します。
- 06
圧縮した結果が必要なら圧縮版をコピー、読みやすさが必要なら整形版をコピー、保存したい場合はダウンロードして .sql ファイルにします。
- 07
さらに編集する場合は結果を左に戻すをクリックし、整形済みの版を新しい入力として続けて調整します。
詳細
これらの機能は、SQL を扱うときによく遭遇する問題、つまりスタイルの不統一、列整列の難しさ、方言ごとのキーワード差異、コンパクト版と読みやすい版の使い分け、本番 SQL の安全な取り扱いをカバーします。
- sql-formatter を内蔵し、十六以上の方言を各々のキーワード集合で整形します。
- キーワードと識別子の大文字小文字を独立に設定できるので、テーブルや列名を意図せず書き換えることがありません。
- インデント幅は 2 スペース、4 スペース、タブから選べ、標準・表組み左・表組み右と組み合わせられます。
- AND や OR の改行位置を前後で切り替え、チーム規約に揃えられます。
- 整形版をコピーして読みやすさを得るか、圧縮版をコピーしてコードやログ、CLI に貼り付けられます。
- 文間の空行数を調整でき、マイグレーションやシードスクリプトが読みやすくなります。
- .sql ファイルをアップロードすると即座に現在のオプションで整形され、解析失敗時はステータスバッジに位置が表示されます。
- 整形結果を .sql ファイルとしてダウンロードでき、バージョン管理やデータベースツールに渡しやすくなります。
- すべての処理はブラウザ内で完結し、クエリ、スキーマ、テーブル名、サンプル値は外部に送信されません。
活用シーン
このページは、SQL を読みやすく、統一感のある、レビューしやすい、他システムへ貼り付けやすい形にしたいあらゆる場面で役立ちます。
-
クエリのデバッグ
ORM が出力した一行 SQL やデバッグログのクエリを貼り付け、整形して JOIN、サブクエリ、WHERE 条件を順に確認します。
-
SQL レビュー
プルリクエストの SQL を整え、チームのキーワード大文字小文字、インデント幅、改行スタイルを統一して、レビュアーがロジックに集中できるようにします。
-
マイグレーションとシードスクリプト整理
Flyway、Liquibase、Knex、Prisma、SQLAlchemy Alembic などの DDL と DML を整形し、必要に応じて文間の空行を残します。
-
BI とレポートクエリ
Metabase、Superset、Looker、Redash のレポート SQL を整理し、SELECT、GROUP BY、ORDER BY の階層を一目でわかるようにします。
-
ストアドプロシージャとスクリプト
PL/SQL、T-SQL、PostgreSQL 関数の本体を整形し、リポジトリへのコミットやドキュメントへの掲載に備えます。
-
面接準備と教材作成
SQL の練習問題、解答、スライドを統一スタイルでまとめ、記事、講義資料、README で見栄え良く展示します。
-
AI コパイロット出力の整形
AI が生成した長い SQL を再整形し、インデント、大文字小文字、キーワード位置を安定させてから実際のクエリエディタで検証します。
-
ログから抽出した SQL
アプリケーションやスロークエリログからコピーした一行 SQL を読みやすい形に展開し、インデックス追加や JOIN 見直しの判断材料にします。
関連情報
SQL の戻り値である JSON カラムやログ payload を扱う場合は、まず JSON フォーマッター で構造を整理し、エラー位置や JSON Path をコピーできます。クエリ結果を行と列で扱いたい場合は CSV ツール で CSV / TSV のプレビュー、編集、変換が行えます。SQL がログ接頭辞や定型文に包まれているときは、まず テキスト置換 で外側のテキストを取り除いてからここで整形してください。
SQL 整形に関するいくつかの注意点
整形は可読性を変えるだけで、意味は変えません。方言やチーム間で誤解されやすいポイントをまとめました。
-
整形は意味を変えない
ツールは空白、改行、インデント、キーワードの大文字小文字だけを調整します。テーブル名、識別子、演算子、引数は変わらず、整形前後で挙動は同じはずです。
-
方言はキーワード認識のみに影響
PostgreSQL と MySQL のどちらを選ぶかは、どの語をキーワードと見なすか、引用符や関数名をどう扱うかに影響します。MySQL 構文を PostgreSQL 構文に翻訳することはありません。
-
キーワードの大文字小文字は要件ではなくスタイル
多くのデータベースは SQL キーワードの大文字小文字を区別しませんが、チームは通常スタイルを統一します。大文字に揃えると密なコードの中でキーワードと識別子を区別しやすくなります。
-
識別子の大文字小文字には注意
PostgreSQL のように引用符付き識別子で大文字小文字を区別するデータベースもあります。大文字や小文字に強制する前に、対象データベースの挙動を確認し、必要なら保持を選びましょう。
-
SQL パーサーや lint の代わりにはならない
このツールは字句的に整形するだけで、意味検証は行いません。存在しないテーブルや型の不一致、遅いクエリなどはデータベース、ORM、専用 SQL lint で確認してください。
-
SQL を実行しない
このページはテキストの整形のみを行い、データベースには接続せず、クエリも送信しません。たとえ DROP や DELETE を貼り付けてもテキストとして扱われるだけです。
使い方のヒント
SQL が長くなり、サブクエリや CTE が増えるほど、安定した整形習慣が効きます。レビューのノイズと誤解を減らすコツです。
- チームで方言、キーワード大文字小文字、インデントスタイルを統一し、レビューのたびに書式議論にならないようにします。
- 複雑な SELECT は表組みレイアウトで列を揃え、シンプルなマイグレーションは標準インデントで十分です。
- ストアドプロシージャ、長い CTE、深いサブクエリは 4 スペースが読みやすいことが多いです。
- ORM のデバッグでは、まず複数行に展開してから、インデックスや JOIN の見直しが必要かを判断します。
- コード、ログ、CLI に埋め込むときは手動でスペースを削るのではなく圧縮版を使うと、文字列リテラル内のスペースまで削ってしまう事故を防げます。
- マイグレーションでは文間に空行を残すと、DDL / DML ごとに視覚的な区切りができ、レビュー時にブロックを把握しやすくなります。
- 本番 SQL を扱う前にサニタイズします。ツールはローカル処理ですが、コピーした内容はチケット、チャット、ドキュメント、スクリーンショットに残る可能性があります。
制限事項
このツールは SQL のレイアウト、インデント、キーワードスタイルを扱います。クエリパーサー、SQL lint、マイグレーション実行、実行エンジンの代わりにはなりません。
- テーブル名、列名、型、権限が実在するかは検証しません。それらはデータベース本体、DBA ツール、ORM が担います。
- クエリの意味は書き換えません。JOIN の並べ替え、サブクエリのマージ、インデックス追加、方言構文の変換はデータベース専門家やリファクタリングツールに任せてください。
- SQL lint ではありません。複雑なルール、命名規約、アンチパターン検出は sqlfluff、SonarQube、pgFormatter などの専用ツールを使ってください。
- データベースには接続せず、SQL を実行しません。DROP や DELETE であってもテキストとして整形するだけです。
- MySQL と PostgreSQL の方言差(関数名、引用符、LIMIT / OFFSET など)を自動翻訳することはありません。方言は整形時のキーワード認識にだけ影響します。
- 処理はローカルですが、ローカルの安全性はあなたの端末、ブラウザ拡張、画面共有、コピー先に依存します。
よくある質問
方言、大文字小文字、インデント、圧縮、エラー位置、プライバシーなどについてのよくある質問です。
SQL はサーバーに送信されますか?
いいえ。解析、整形、圧縮、ファイル読み込み、コピー、ダウンロードはブラウザ内で完結します。DevKitLab はクエリやスキーマをサーバーに送信しません。
どの方言に対応していますか?
MySQL、PostgreSQL、SQLite、MariaDB、TiDB、BigQuery、Snowflake、Redshift、Oracle PL/SQL、SQL Server (Transact-SQL)、Spark、Trino、Hive、ClickHouse、DuckDB、Couchbase N1QL、IBM Db2、汎用 SQL の十六種以上に対応しています。
方言を間違えるとどうなりますか?
方言は主にどの語をキーワードと見なすか、引用符の扱いに影響します。多くの場合は読みやすさを保てますが、BigQuery のバッククオートや PostgreSQL のドル引用文字列など方言固有構文は別方言だとうまく整形されないことがあるため、実際のデータベースに合わせて選んでください。
キーワードが自動で大文字にならないのはなぜですか?
デフォルトの大文字小文字戦略は保持です。キーワードを大文字に、あるいは識別子を小文字に変更してから整形すると効果が現れます。
文字列リテラルは書き換えられますか?
いいえ。整形は空白、改行、キーワード/識別子の大文字小文字のみを調整します。引用符内の文字列、コメント、パラメータプレースホルダはそのまま残ります。
圧縮モードは何をしますか?
圧縮版をコピーすると、複数行 SQL が一行にまとまり、余分な空白が取り除かれ、文字列リテラルはそのまま保たれます。ORM 呼び出し、ログフィールド、コマンドライン、一行クエリしか受けないツールに便利です。
解析失敗は SQL が壊れているという意味ですか?
ツールのパーサーが認識できないトークンに遭遇しただけのことが多いです(方言不一致、括弧の閉じ忘れ、特殊な拡張構文など)。データベースの実行エラーとは別物ですので、方言を変えるか構文を修正して再試行してください。
PL/SQL や T-SQL のストアドプロシージャを扱えますか?
一般的な PL/SQL と T-SQL の文本体は扱えますが、sql-formatter はストアドプロシージャの意味全体までサポートしているわけではありません。複雑なものはベンダー IDE や専用ツールに任せてください。
ここで SQL を実行したりデータベースに接続したりできますか?
いいえ。このツールはテキストを整形するだけで、データベースに接続せず、クエリも送信・実行しません。
大きな SQL ファイルも扱えますか?
数百 KB から数 MB のスクリプトなら問題ありません。数十 MB の巨大なマイグレーションや大量の INSERT はブラウザが重くなることがあるため、分割してから処理してください。
関連ツール
DevKitLab のデータツールでクエリやデータ関連のワークフローを続けられます。SQL の戻り値の JSON 整理、表形式データのプレビュー、関連テキストツールへのジャンプが可能です。