SQL を入力
SQL を貼り付けるか入力してください。.sql ファイルを選択することもできます。
出力
上で選んだ方言とインデントで整形します。コピーやダウンロードができます。
上に SQL を貼り付けるか入力する、またはファイルを選択すると、ここに結果が表示されます。
ブラウザから出ることなくSQLを整形
クエリを貼り付ける、直接入力する、または .sql ファイルを選択できます。書いているSQLに近い方言(標準SQL・MySQL・PostgreSQL・SQLite・MariaDB)と、2または4スペースのインデント幅を選ぶと、キーワードや句、JOINの周りの改行とインデントが整えられます。
整形はオープンソースライブラリの sql-formatter が行います。キーワードや句、JOINまわりの空白と改行を整えるだけで、識別子を書き換えたり、キーワードの大文字・小文字を自動で変えたりはしません。特定のデータベースの文法を厳密に検証するパーサーではなく寛容なトークナイザーのため、クエリが有効かどうか・実際に実行できるかどうかはチェックしません。入力を解釈できない場合は、投げられたエラーをそのまま表示します(内容を創作することはありません)。
なぜSQLが端末の外に出ないのか
ここでのプライバシーは約束ではなく構造です。アップロード先のサーバーが存在しないため、アップロードという処理そのものがありません。SQL整形ツールに貼り付けるクエリは、本番データに対する実際のクエリであることが多く、他所に送りたくないテーブル名やカラム名を含んでいることも珍しくないため、これは通常以上に重要です。
- 整形処理はすべてブラウザ内で、sql-formatter ライブラリを使って行われます。
- このページは静的ファイルとして配信されており、SQLを伴うリクエストは発生しません。
- ソースコードは公開されており、誰でも読むことができます(MIT)。
- オフラインでも動作します。これは何も外部に送信していないからこそ可能です。
確認したい場合は、整形中にブラウザのネットワークパネルを開いてください。データを運ぶリクエストは発生しません。 ソースコードを見る。
使い方
-
SQLを入力
テキストボックスに貼り付けるか直接入力するか、クリックして .sql ファイルを選択してください。ページ上のどこにファイルをドロップしても読み込めます。
-
方言とインデントを選ぶ
書いているSQLに近い方言(標準SQL・MySQL・PostgreSQL・SQLite・MariaDB)と、2または4スペースのインデントを選びます。
-
結果を確認
クエリを解釈できなかった場合は、フォーマッタが報告した内容がそのまま表示されるので、問題箇所を見つけて修正できます。推測や創作は行いません。
-
コピーまたはダウンロード
整形結果をクリップボードにコピーするか、.sql ファイルとしてダウンロードできます。
よくある質問
SQLはどこかにアップロードされますか?
いいえ。整形処理はすべてブラウザ内で行われます。サーバー側の仕組みが存在しないため、クエリが端末の外に出る経路自体がありません。ソースコードは公開されているため、ブラウザのネットワークパネルで実際に確認できます。
どのSQL方言に対応していますか?
ドロップダウンには標準SQL(汎用のデフォルト)、MySQL、PostgreSQL、SQLite、MariaDBを用意しています。これは内部で使っている sql-formatter ライブラリが対応する方言の中から実用的な範囲を選んだものです。単純なクエリであれば標準SQLでもおおむね問題なく整形できますが、使っているデータベース特有の構文がある場合はその方言を選んでください。
このSQLが正しいか、実際に実行できるかを検証してくれますか?
いいえ。sql-formatter は特定のデータベースの文法を厳密に検証するパーサーではなく、寛容なトークナイザーです。構文や意味を実際のエンジンに対して完全に検証するわけではなく、空白を整えるだけです。整形が成功したからといって実行できる保証にはならず、逆に整形が失敗したからといって、あなたのデータベースにとって無効なSQLだとは限りません(このツールが字句解析できなかっただけの場合もあります)。
整形に失敗した場合はどうなりますか?
フォーマッタが投げた正確なエラーメッセージがそのまま表示されます。その上に何かを書き加えたり推測したりすることはありません。メッセージが技術的に見える場合、それはライブラリが実際に報告した内容をそのまま見せているためです。
整形によってクエリの内容自体が変わりますか?
変わるのは空白と改行だけです。キーワードや識別子、リテラルは書いたとおりのまま残ります。このツールが何かの名前を変えたり、キーワードの大文字・小文字を変えたり、クエリのロジックを変えたりすることはありません。
オフラインでも使えますか?
はい。PWAとして動作します。初回アクセス後はキャッシュされるため、ネットワーク接続がなくても整形できます。ホーム画面に追加してインストールすることもできます。