SQLフォーマッター
MySQL、PostgreSQL、SQL Server、OracleなどのSQLを整形します。キーワードの大文字・小文字、インデント、1行への圧縮に対応し、エラーは行と列で表示します。
ログ、ORM、BIツールから貼り付けた長いクエリは、たいてい読めない1行です。フォーマッターは、SELECT、FROM、JOIN、WHERE、GROUP BYなどの句をそれぞれ1行に置き、そこに属する内容をインデントし、選んだデータベースの文法に基づいて好みのキーワードの大文字・小文字を適用します。圧縮はその逆で、クエリをコードに埋め込めるよう、コメントと余分な空白を取り除きます。
使い方
- SQL文を1つ以上貼り付けます。
- MySQL、PostgreSQL、SQL Serverなどの方言を選び、そのデータベースの引用符やキーワードを認識させます。
- キーワードの大文字・小文字、インデント、文の間の空行を選びます。
- 結果をコピーするか、圧縮に切り替えて1行のコンパクトな版を得ます。
計算式
clause keyword on its own line; clause body indented one level; one column or condition per line; AND / OR start new lines
整形にはオープンソースのsql-formatterライブラリを使います。これは方言ごとに別々にトークン分割を行います。MySQLのバッククォート名、SQL Serverの[角括弧]、PostgreSQLの$$文字列などです。圧縮は別のトークナイザーで、文字列や引用符付きの名前の内部には手を触れず、オプティマイザーヒント(/*+ … */)とMySQLの /*! … */ ブロックは、削除するとクエリの実行方法が変わることがあるため残します。
計算例
1行のサンプル集計クエリは20行になります。インデントされた3つの列を持つSELECT、FROM orders、ON条件付きの2つのJOIN、2つの条件が別々の行でANDでつながれたWHERE、そしてGROUP BY、HAVING、ORDER BY total DESC、LIMIT 20です。キーワードとSUMのような関数名は大文字になり、テーブル名、別名、引用符内の日付は入力したままです。
よくある質問
なぜ構文解析エラーになりますか?
たいていは閉じられていない引用符か、標準SQLで角括弧の名前を使うなど、あるデータベースの構文を別のものとして検査している場合です。方言で使っているデータベースを選んでください。エラーには、読み取りが止まった行と列が表示されます。
整形するとクエリの動作は変わりますか?
いいえ。変わるのは空白とキーワードの大文字・小文字だけで、識別子、文字列、コメントはそのままです。SQLデータベースではキーワードの大文字・小文字は関係ありません。
本番のクエリを貼り付けても安全ですか?
はい。整形はブラウザー内で実行され、サーバーには何も送信されません。
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/sql-formatter/
このツールを引用する
kakaoCalc. (2026, November 8). SQLフォーマッター. https://kakao.mobile/ja/tools/sql-formatter/
“SQLフォーマッター.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/sql-formatter/.