実際の方言を指定
MySQL、PostgreSQL、SQLite、SQL Server、Oracleでは引用規則が異なります。PostgreSQLを選んでもMySQLのクエリは翻訳されず、その操作の解析規則が切り替わります。
データベース・SQLツール
クエリの段落と構造を読み取る
ブラウザー内で処理します。データベースへの接続や履歴の保存はありません。
SQLを入力するかサンプルを選んでください。
SQL整形は、ログから取り出した長いクエリや、レビュー前の読みにくい文を確認するときに役立ちます。まず作成元の方言を選びます。同じ引用符でもデータベースによって意味が変わるためです。
SQLフォーマッターで結合や入れ子を見やすくし、SQL圧縮で外側の空白を減らせます。SQLフォーマットの成功と、実際のデータベースで実行できることは別に確認してください。
SQL整形は句ごとに改行し、字下げをそろえます。文字列、数値の表記、コメントを元の入力と照合し、保持できない書き換えは出力せずにエラーとして扱います。
ASTモードは別のパーサーで4方言の対応範囲を解析します。Oracleは整形のみ対応し、構文木は提供しません。構文木はパーサーの解釈であり、実行計画ではありません。
MySQL、PostgreSQL、SQLite、SQL Server、Oracleでは引用規則が異なります。PostgreSQLを選んでもMySQLのクエリは翻訳されず、その操作の解析規則が切り替わります。
整形は読みやすさ、圧縮は空白削減、ASTはJSONでの構造確認に使います。字下げや大小文字は整形用です。構文木には数値と複雑さの制限があります。
自動処理は350ミリ秒待って更新します。無効にするとボタンやCtrl/Cmd+Enterで実行できます。結果を入力に戻す操作は確認後に適用し、設定と結果ごと元に戻せます。
sql-formatterを使い、2スペース・4スペース・タブを選べます。キーワードは大文字・小文字・元の表記に対応し、識別子・関数・型名の大小文字は設定で維持します。 構造キーワードのみ大小文字を変えます。ACTIONやNOなど文脈依存の語は識別子を守るため元の表記を維持します。
トークン外の空白を減らし、行コメント、ブロックコメント、実行用ヒントを残します。PostgreSQLで隣り合う文字列に必要な改行も維持します。
node-sql-parserが対応するMySQL、PostgreSQL、SQLite、Transact-SQLの部分集合を解析します。JSONのエクスポートは現在の構文木のみで、編集履歴は含みません。
方言と字下げを統一すると、結合・条件・サブクエリを追いやすくなります。このSQL整形では表示と構文木を分離しているため、目的に合う結果を選び、実際のデータベースに照らして確認してください。
句を目立たせるための表記上の慣習です。プロジェクトが小文字を使うなら小文字か元の表記を選べます。文字列や引用された識別子を大文字にする設定ではありません。
圧縮モードを選ぶと、トークンやコメントを残して外側の空白を減らします。行コメントの後やPostgreSQLの隣接文字列に必要な改行は残るため、完全な1行化とは異なります。
ASTモードは、そのパーサーの文法が入力を受け付けるかを確認します。テーブル、列の型、権限、サーバー固有の動作は調べません。整形だけの成功はレイアウト処理の結果です。
psqlのバックスラッシュコマンドなどは、通常のSQLではなくクライアントの命令です。元のスクリプトを別に保持し、整形したいSQL部分を取り出してください。
整形の問題を見つけましたか?