どんな SQL クエリも整形し、点検し、理解する。
19 の方言、行と列を示すリンター、シンタックスハイライト、そして文ごとの内訳。すべてこのタブの中で完結し、どこにも送信しません。
ここでは何も自動では動きません。クエリの準備ができたら「整形」を押してください。
まだ何も読み込まれていません。
文がひとつでもあれば内訳が表示されます。
19 の方言に対応
PostgreSQL、MySQL、MariaDB、SQLite、SQL Server、BigQuery、Snowflake、Redshift、DuckDB、Oracle ほか。予約語も引用符もプレースホルダもそれぞれ違います。貼り付ければ方言は自動で推測されます。
行番号付きの指摘
閉じていない引用符や括弧、WHERE のない DELETE、ORDER BY のない LIMIT。どの指摘も行と列を示し、クリックするとカーソルがそこへ移動します。
メインスレッドの外で
整形は Web Worker で走るので、5 MB のダンプでも処理中にページが固まりません。結果の横に出る時間は実測値です。
タブの外には出ません
アップロードもアカウントもサーバー往復もありません。本番クエリにはテーブル名や ID や業務ロジックが載っていますが、どれもどこにも送られません。
使い方
クエリを持ち込む
貼り付ける、.sql をドロップする、サンプルを読み込む、または別のツールから受け取る。ドロップしたファイルは待機します。あなたが指示するまで読み込みも整形もしません。
ルールを決める
方言、キーワードの大文字小文字、インデント幅、AND と OR の位置、式が折り返される幅。どの設定も次回の整形結果に反映されます。
「整形」を押す
エンジンがクエリを書き直し、チェック欄が確認すべき点を並べ、内訳が文・テーブル・結合・CTE を示します。
持ち帰る
コピーする、.sql をダウンロードする、あるいはスイート内の別のツールへそのまま送る。二つの版を比べる、画像にする、ハッシュを取る。
整形は仕事の半分にすぎません
オンラインの SQL 整形ツールの多くは、改行を入れるだけです。それで足りるのは、クエリが単に読みにくいだけのうちです。途中で開いたままの引用符、閉じない括弧、コピー&ペーストで消えた WHERE。SQLFlow は手を加える前にクエリをトークンとして読むので、壊れた出力を黙って返す代わりに、問題が始まる行と列を示せます。
このトークン処理はデータも守ります。素朴な整形ツールは全文に正規表現をかけるため、'こんにちは 世界' の中の空白が潰れ、コメント内のカンマが改行を生みます。ここでは文字列とコメントは手を触れない単位です。中に書いたものは、どの方言を選んでもバイト単位でそのまま出てきます。
そして同じ処理が内訳も組み立てるので、きれいな文字列以上のものが得られます。ファイル内の文、それぞれが触れるテーブル、CTE、結合、値待ちのプレースホルダ。整っているように見えるクエリと、本番に流す前に理解できているクエリの違いはここにあります。
よくある質問
クエリはサーバーに送られますか?
いいえ。フォーマッタとその周辺はすべてブラウザ内で動きます。アップロードも API 呼び出しもないため、クエリが端末の外に出ることはありません。
対応している SQL 方言は?
19 種類です。標準 SQL、PostgreSQL、MySQL、MariaDB、SQLite、SQL Server(T-SQL)、Oracle PL/SQL、BigQuery、Snowflake、Redshift、DuckDB、ClickHouse、Spark、Hive、Trino、Db2、SingleStore、TiDB、N1QL。それぞれ予約語も引用規則もプレースホルダ構文も異なり、可能な場合はクエリから方言を推測します。
クエリの動作が変わることはありますか?
ありません。整形が触るのは空白とキーワードの大文字小文字だけです。文字列、コメント、引用符付きの名前は、中の空白も含めて書いたとおりに出てきます。
チェック欄は何を見ていますか?
閉じていない引用符・コメント・括弧、SQL キーワードで始まらない文、WHERE のない DELETE と UPDATE、DROP と TRUNCATE、SELECT *、条件なしでカンマ結合されたテーブル、ORDER BY のない LIMIT、列リストのない INSERT、末尾のセミコロン欠落。どれも行と列を示します。
クエリを貼り付けても何も起きないのはなぜ?
意図的です。フォーマッタは「整形」ボタンか Ctrl+Enter でのみ動きます。入力しながら動かしたい場合は、詳細オプションの「入力しながら整形」をオンにしてください。
複数の文をまとめて整形できますか?
できます。セミコロンで区切られた文はまとめて整形され、内訳が触れるテーブルとともに各文を一覧するので、そこへ直接ジャンプできます。