Web ToolBox

SQL整形

SQLを見やすく整形(各種方言対応)

入力
結果
読み取り専用

SQL整形ツールとは?

複雑で読みにくいSQLクエリを見やすく整形したい、チームで統一されたSQLフォーマットを使いたい――そんな時に役立つツールです。長く入り組んだSQLコードを適切なインデントと改行で構造化し、可読性を大幅に向上させます。

  • リアルタイムでSQLを整形
  • MySQL、PostgreSQL、BigQueryなど主要なSQL方言に対応
  • インデント幅やキーワードの大文字・小文字を選択可能

コードレビュー、データベース開発の学習、ドキュメント作成、レガシーコードのリファクタリングなど、さまざまな場面で活用できます。

使い方

入力エリアにSQLコードを入力してください。リアルタイムで整形され、出力エリアに結果が表示されます。

整形例

読みにくい1行のSQL:

SELECT p.product_name,c.category_name,sum(s.sales_amount) as total FROM products p JOIN categories c ON p.category_id=c.id JOIN sales s ON p.id=s.product_id WHERE s.sales_date BETWEEN '2025-01-01' AND '2025-04-30' GROUP BY p.product_name,c.category_name HAVING sum(s.sales_amount)>1000 ORDER BY total DESC;

整形後:

SELECT
  p.product_name,
  c.category_name,
  sum(s.sales_amount) as total
FROM
  products p
  JOIN categories c ON p.category_id = c.id
  JOIN sales s ON p.id = s.product_id
WHERE
  s.sales_date BETWEEN '2025-01-01' AND '2025-04-30'
GROUP BY
  p.product_name,
  c.category_name
HAVING
  sum(s.sales_amount) > 1000
ORDER BY
  total DESC;

フォーマット設定

用途やデータベースに合わせて、出力形式をカスタマイズできます。

言語(SQL方言)

使用しているデータベースの種類を選択すると、その固有の構文や関数に最適化された整形が行われます。

  • Standard SQL - 標準SQL
  • MySQL - MySQL特有の構文に対応
  • MariaDB - MariaDB固有の機能に対応
  • PostgreSQL - PostgreSQLの関数や構文に最適化
  • DB2 - IBM DB2に特化
  • SQLite - SQLite向けに最適化
  • BigQuery - Google BigQueryの構文をサポート
  • Redshift - Amazon Redshiftに適した整形

インデント

SQLの階層構造を表現するインデント幅を選択できます。

  • 2スペース(デフォルト) - 標準的で読みやすい形式
  • 4スペース - より余白のある読みやすい形式

キーワードの大文字・小文字

SELECT、FROM、WHEREなどのSQLキーワードの表記を統一できます。

  • 元の書式 - 入力されたままのケースを保持
  • 大文字 - すべて大文字に変換(SELECT, FROM, WHERE
  • 小文字 - すべて小文字に変換(select, from, where

チームのコーディング規約や個人の好みに合わせて選んでください。

SQL整形のメリット

デバッグが簡単

構造化されたSQLは、テーブルの結合関係や条件の流れが把握しやすく、論理エラーをすぐに発見できます。

チーム開発の効率化

統一されたフォーマットなら、他の開発者が書いたSQLも読みやすく、コードレビューがスムーズに進みます。

保守性の向上

一貫した形式で記述されたSQLは、後から見返した時も理解しやすく、修正や機能追加が容易になります。

  • 学習効果: 整形されたSQLは、適切なSQL構造を学ぶ良い教材となります

注意事項

  • 非常に大きなSQLクエリの場合、整形処理に時間がかかる場合があります
  • 特殊なコメント記法や非標準の構文を含むSQLは、完全に対応できない場合があります
  • 整形後も論理的な構造や実行結果は変わりませんが、読みやすさのために空白や改行が追加されます