無料オンラインSQLフォーマッター/整形ツール — ブラウザ内で SQL を整形し、ビジュアルに編集

何が違うのか

ただの整形ツールではありません。

他のフォーマッターはインデントで終わります。ここではクエリを理解し、作り替えられます。ビジュアルに、安全に、1 バイトもブラウザの外に出さずに。

ビジュアル WHERE エディター

条件をライブなツリーまたはノードグラフとして編集できます。値を変えれば SQL が即座に更新され、その逆も同じ。これができるフォーマッターは他にありません。

すべての CTE の WHERE を編集

マルチ WHERE エディターがクエリ内のすべての WHERE 句を検出します。各共通テーブル式(CTE)、各サブクエリ、外側の SELECT まで含めて一覧し、どれを編集するか選べます。CTE を積み上げた長い ClickHouse/PostgreSQL/BigQuery クエリに最適です。

スマートなパラメーターバインド

?、:name、$1、@name、ClickHouse の {name:Type} を、CTE の内部も含めてクエリ全体から検出します。timestamp のような列を使い回していませんか。一度入力すればすべての出現箇所が更新されます。

不完全な SQL にも対応

完全なクエリでも、引数が欠けたクエリでも、WHERE 句だけでも貼り付けてください。それでも整形します。妥当で完全な文である必要はありません。

主要な方言をすべてサポート

PostgreSQL、MySQL、SQL Server、Oracle、BigQuery、Snowflake、Redshift、Spark など。キーワードと識別子の大文字小文字も方言ごとに調整できます。

100% プライベート

すべてブラウザ内で動作します。SQL がサーバーへ送信・記録・保存されることはありません。タブを閉じればそれで消えます。

整形もミニファイも

インデント、キーワードの大文字小文字、演算子の空白、改行を自在に制御。そのままワンクリックでコピー、ダウンロード、リンク共有ができます。

使い方

3 ステップ、セットアップ不要。

01

SQL を貼り付ける

どんなクエリでも構いません。完全なもの、パラメーター付き、断片でも。方言を選びましょう。

02

整形して調整する

その場で整形されます。大文字小文字、インデント、空白をスタイルガイドに合わせて調整してください。

03

編集して入力する

WHERE 句をビジュアルに調整し、プレースホルダーを一度入力するだけ。結果をコピーするか、リンクを共有しましょう。

方言

あなたのデータベースの言葉を話します。

専用ページのある方言では、サンプルクエリとそのデータベース固有の構文に関する注記付きで、フォーマッターが設定済みの状態で開きます。

エンジニアのために作られた無料オンライン SQL フォーマッター

Free SQL Formatter は、プライバシーを最優先する高速な SQL フォーマッター/整形ツールです。散らかった SQL、1 行にまとめられた SQL、機械が生成した SQL を、きれいで読みやすく、一貫したインデントのクエリに変換します。コードレビュー用に SQL をオンラインで整形したいときも、アプリケーションログからコピーしたクエリを整えたいときも、巨大な分析用ステートメントを読みやすくしたいときも、このオンライン SQL フォーマッターがブラウザ内で即座に処理します。アップロードなし、登録なし、利用制限なしです。

あらゆる方言に対応した SQL フォーマッター/整形ツール

SQL の構文はデータベースごとに異なるため、すべてを一律に扱うツールでは不格好な出力になります。このオンライン SQL フォーマッター/整形ツールは主要な方言すべてに対応しています。Postgres 用 SQL フォーマッターとして、MySQL/MariaDB の整形ツールとして、SQL Server(T-SQL)や Oracle PL/SQL のフォーマッターとして、そしてマップアクセス(attributes['key'])や CAST 式といった方言固有の構文を理解する ClickHouse SQL フォーマッターとして動作します。方言を選んだうえで、キーワードや識別子の大文字小文字、インデント、演算子の空白、改行を制御すれば、出力をチームのスタイルガイドに正確に合わせられます。

不完全でも SQL をオンラインで整形

多くのツールはクエリが完全に妥当でなくなった時点で失敗します。この SQL フォーマッターは違います。完全なステートメントはもちろん、引数が欠けたクエリや ? / :name / $1 のプレースホルダーを含むクエリ、さらには単独の WHERE 句のような断片まで整形します。整形はパースの成功に依存しないため、常に読みやすい出力が得られ、入力が特殊な場合もクラッシュではなく分かりやすいメッセージが表示されます。

整形の先へ — SQL を理解して編集する

Free SQL Formatter は整形にとどまらず、クエリの作り替えを助けます。ビジュアル WHERE エディターは条件をインタラクティブな AND/OR ツリーとノードグラフで表示し、値や演算子を変えると SQL がライブで更新されます。スマートなパラメーターバインドはプレースホルダーを検出して重複をまとめるので、timestamp のような列を使い回していても値の入力は一度きりで、出現するすべての場所に反映されます。整形とミニファイの切り替え、結果のコピーやダウンロード、すべてを URL に埋め込んだリンクの共有も可能です。きれいなクエリをプルリクエストや同僚のチャットに貼るのに最適です。

CTE やサブクエリ内の WHERE 句を編集

実務の分析クエリは、とくに ClickHouse、PostgreSQL、BigQuery、Snowflake で、共通テーブル式の連なりとして書かれるのが普通です。Free SQL Formatter はクエリ全体を走査し、すべての CTE 内のすべての WHERE 句(さらにサブクエリと外側の SELECT)を見つけて、ラベル付きのドロップダウンに並べます。作業したい CTE を選べばビジュアルエディターがその句に切り替わり、条件を調整すると編集内容が正しい位置に差し戻されます。パーサーが完全に分解できないもの — GLOBAL IN (SELECT ...) のサブクエリや、方言固有の構文を含むバッククォート付き識別子など — は編集可能な生テキストのノードになるため、変更する手段を失うことはありません。マルチ CTE クエリをこのように扱えるオンライン SQL フォーマッター兼エディターは他にありません。

設計からしてプライベート、標準で高速

すべてのバイトが JavaScript でローカルに処理されるため、クエリがサーバーに触れることはありません。だからこのオンライン SQL フォーマッターは、本番の SQL、社外秘の SQL、機微な SQL にも安心して使えます。安心して貼り付け、終わったらタブを閉じてください。インストールも設定も不要です。ページを開き、クエリを貼り付ければ、数ミリ秒で整形されます。

このオンライン SQL フォーマッターを選ぶ理由

読みやすい SQL はレビュー、デバッグ、保守がしやすく、一貫したフォーマットはバージョン管理の差分のノイズを減らします。一般的なオンライン SQL フォーマッターと比べると、Free SQL Formatter は完全にクライアントサイドで動くため高速で、煩わしい広告がないためすっきりしており、インデントの先まで踏み込むため高機能です。深くネストしたサブクエリ、共通テーブル式、ウィンドウ関数、長い論理条件も難なく扱い、珍しい表現やベンダー固有の表現も破棄せずそのまま保ちます。単発の整理から大規模コードベース全体のクエリ標準化まで、毎日戻ってこられる信頼できる SQL フォーマッターです。

SQL をオンラインで整形する手順

使い方は 3 ステップです。SQL をエディターに貼り付け、データベースの方言と好みの整形オプションを選び、整形された結果をコピーします。SQL フォーマッター、オンライン SQL フォーマッター、SQL 整形ツール、ClickHouse SQL フォーマッター、Postgres SQL フォーマッターのいずれで検索して来られた方にも、Free SQL Formatter は SQL をオンラインで整形しコードの一貫性を保つ、もっとも速くすっきりした方法となるよう設計されています。

よくある質問

SQL はサーバーに送信されますか?

いいえ。Free SQL Formatter は完全にブラウザ内で動作します。クエリがあなたのマシンから出ることはないため、本番用や社外秘の SQL にも安全に使えます。

不完全な SQL や不正な SQL も整形できますか?

はい。多くのツールと違い、部分的な SQL も整形します。単独の WHERE 句、引数が欠けたクエリ、まだパースできない書きかけでも構いません。完全なステートメントか WHERE 句が検出されればビジュアルエディターが有効になります。

CTE やサブクエリ内の WHERE 句も編集できますか?

はい。ビジュアルエディターはクエリ内のすべての WHERE 句 — 各共通テーブル式(CTE)、各サブクエリ、外側の SELECT — を CTE 名のラベル付きで一覧します。ドロップダウンから選ぶと AND/OR ツリーまたはノードグラフとして編集でき、変更は SQL の正しい位置に差し戻されます。複数の CTE から構成される ClickHouse、PostgreSQL、BigQuery、Snowflake の長い分析クエリでとくに便利です。

プレースホルダーとパラメーターバインドとは何ですか?

?、:name、$1、@name、ClickHouse の {name:Type} といったプレースホルダーは値の代わりに置かれます。これらを検出して重複をまとめるため、timestamp のような値を一度入力すれば出現するすべての箇所に適用されます。ClickHouse のパラメーターは名前でグループ化し、宣言された型から型付けするので、{start_ts:UInt64} と {end_ts:UInt64} は型が同じでも別々のままです。

ClickHouse に対応していますか?

はい。MySQL で近似するのではなく、本物の ClickHouse 文法を使っています。そのため ARRAY JOIN、PREWHERE、GLOBAL IN、attributes_string['http.method'] のようなマップアクセス、quantile(0.95)(duration) のようなパラメトリック集約、SETTINGS と FORMAT 句、$$ を含む識別子まで正しく扱われます。専用の ClickHouse SQL フォーマッターのページもご覧ください。

対応している SQL 方言は?

標準 SQL、PostgreSQL、MySQL、MariaDB、SQLite、SQL Server(T-SQL)、Oracle PL/SQL、BigQuery、Redshift、Snowflake、ClickHouse、DuckDB、Spark、Hive、Trino、DB2 など。