SQL整形
1行のSQLクエリを読みやすくインデントされたSQLに整えます
ツールを読み込んでいます…
1行の長いSQLクエリを句ごとに改行・インデントして読みやすくしたり、整形済みのSQLを1行に戻したりします。ログやコードから取り出したクエリを確認するときや、ドキュメントに載せるときに使えます。
使い方
- 「SQL入力」にクエリを貼り付けるか、「ファイルを開く」を押して.sqlファイルを読み込みます。複数の文を一度に入れても構いません。
- 「SQLの方言」で使っているデータベースを選びます。わからない場合は「標準SQL」のままにします。
- 「キーワード」「インデント」「カンマの位置」「行の幅」を設定すると、「結果」がすぐに変わります。
- 結果をコピーするか、「.sqlで保存」を押します。1行にするには「モード」を「1行にする」に切り替えます。
計算方法と補足
- 整形にはsql-formatterライブラリ(MITライセンス)を使い、MySQL、PostgreSQL、SQL Server、Oracle PL/SQL、SQLite、BigQueryなど20の方言に対応しています。
- 変わるのはスペース、改行、キーワードの大文字・小文字だけで、引用符の中のテキストとコメントはそのまま残ります。「1行にする」モードでは、クエリが動作し続けるように、--コメントを/* */コメントに変換します。
- SQLはこのブラウザの中だけで処理され、実行されることもサーバーに送信されることもありません。20 MBを超えるファイルは開けません。
よくある質問
- SQLを整形するとクエリの動作は変わりますか?
- いいえ。変わるのはスペース、改行、キーワードの大文字・小文字だけで、引用符で囲まれた値とコメントはそのままです。キーワードを書いたとおりに残すには、「キーワード」を「入力のまま」にします。
- 「整形できませんでした」と表示されるのはなぜですか?
- 示された位置の近くに閉じていない引用符や括弧がないか確認してください。正しい方言が必要な構文もあります。角括弧で囲んだ名前にはSQL Server、::によるキャストにはPostgreSQLが必要です。「1行にする」モードはどんなテキストでも使えます。
- カンマを各行の先頭に置けますか?
- はい。「カンマの位置」を「行頭」にすると、SELECTの列などのリストのカンマが各行の先頭に移ります。
- 括弧内のリストが1行のままになるのはなぜですか?
- 「行の幅」(初期設定は50文字)より短い括弧内のリストは1行のままになります。値を小さくすると、より多くのリストが改行されます。