SQLフォーマッター

SQL入力

SQLフォーマッターについて

このSQLフォーマッターは、SQLクエリを整形・フォーマットするための無料のオンラインツールです。インデントの自動調整や構文チェック機能を提供し、SQLクエリの可読性を向上させます。

主な機能

  • SQLクエリの整形(インデント調整)
  • キーワードの大文字化
  • 適切な改行とスペースの挿入
  • コピー機能
  • リアルタイムプレビュー

使用シーン

  • SQLクエリの可読性向上
  • データベース開発時のデバッグ
  • SQLファイルの編集
  • チーム開発でのコード統一

注意事項

このツールは、SQLクエリの整形のみを行います。構文の検証や実行は行いません。本番環境で使用する前に、必ず構文を確認してください。

よくある質問

各データベース固有の構文に対応していますか?

本ツールは標準SQL(ANSI SQL)をベースに整形します。MySQL の `ON DUPLICATE KEY UPDATE`、PostgreSQL の `RETURNING`、SQL Server の `TOP`、Oracle の `MERGE` など各データベース固有の構文も整形可能ですが、ベンダー固有のキーワードは大文字化されない場合があります。実行前は対象DBのSQLパーサーで構文チェックを推奨します。

非常に大きなクエリでも整形できますか?

通常、数百〜数千行のクエリまで問題なく整形できます。10,000行を超える巨大クエリや、極端に深いネスト(サブクエリの多重入れ子)の場合はブラウザのメモリ・処理時間に負担がかかります。動的SQL生成の自動整形には不向きで、人間が書くサイズのクエリ整形を想定しています。

コメントは保持されますか?

本ツールはシングルラインコメント(`-- comment`)とマルチラインコメント(`/* comment */`)の保持に対応しています。ただし、コメントの位置はSQL文の論理的な区切り位置に再配置されることがあります。重要なコメント(ライセンス情報、SQLヒント `/*+ INDEX(...) */` 等)は整形前後で残っているか必ず確認してください。

複数のステートメントを一度に整形できますか?

セミコロン区切りで複数のSQLステートメントを並べた場合、全体を一度に整形できます。各ステートメントが独立した形に整形され、可読性が向上します。トランザクションスクリプトやマイグレーションSQLの整形にも便利です。

インデント幅を変更できますか?

本ツールは2スペースインデントで固定です。4スペースやタブが必要な場合は、整形結果をエディタにペーストして一括置換するのが効率的です。チーム開発では `.editorconfig` でインデント規約を統一しておくのがおすすめです。

パラメータ化クエリ(プレースホルダ)はどう扱われますか?

`?`(位置プレースホルダ)、`:param`(名前付き)、`@param`(SQL Server)、`$1`(PostgreSQL)などの典型的なプレースホルダはそのまま保持されます。ORM が生成する SQL や、prepared statement 用のテンプレートをそのまま整形して可読性を確認できます。

SELECT *の使用は推奨されますか?

本番コードでは `SELECT *` は非推奨です。理由は (1) スキーマ変更時に不要な列も取得してしまう、(2) インデックスのカバリングが効きにくい、(3) アプリケーション側のリスト処理で予期しない列が含まれる、(4) パフォーマンスとネットワーク帯域の無駄。明示的にカラム名を列挙することがコードレビューでも推奨されます。

機密情報を含むSQLの整形は安全ですか?

はい、本ツールはすべての処理をブラウザ内で完結させ、SQLクエリがst0z.comのサーバーや第三者に送信されることはありません。本番DBの認証情報、個人情報を含むWHERE句、未公開のスキーマ情報なども安全に整形できます。