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句、未公開のスキーマ情報なども安全に整形できます。