SQL 整形(Pretty Print)と 1 行圧縮(Minify)の使い方・Node.js 自動化

SQL データベース DevOps JavaScript
結論:30秒で SQL クエリを整形・一括圧縮する
  • Pretty Print: 人間が見やすいインデント化 (keywordCase: 'upper')
  • Minify 危険防止: 単一行コメント --/* ... */ に置換してから 1 行化
  • 生成ツール: 下のコンポーネントでブラウザ即時整形

1. オンライン SQL 整形 & 1行圧縮ツール

ブラウザ上でSQLの整形および1行圧縮を即座に相互変換できます。

🗃️ この場でSQLを整形する

  

2. 整形(Format)と 1行圧縮(Minify)の使い分け

① 整形 (Pretty Print)

ログファイルやデバッグ時に人間が構造(JOIN条件やWHERE句の入れ子)を素早く読むためのフォーマットです。

SELECT
  id,
  name
FROM
  users
WHERE
  status = 'active';

② 1行圧縮 (Minify)

ソースコード内にヒアドキュメントを使わずにSQL文字列を直接安全に埋め込むためのフォーマットです。

SELECT id, name FROM users WHERE status = 'active';

3. Node.js での SQL 自動整形コード (sql-formatter)

import { format } from 'sql-formatter';

const rawSql = "select id, name, email from users where status = 'active' and age > 20 order by created_at desc;";

// PostgreSQL 方言でキーワードを大文字化して整形
const formattedSql = format(rawSql, {
  language: 'postgresql',
  keywordCase: 'upper',
  tabWidth: 2
});

console.log(formattedSql);

4. 注意点(ハマりどころ)

  1. -- コメントによるクエリ全滅
    • 1 行化する前に -- の単一行コメントが含まれていないか確認してください。単一行コメントの直後の改行が消えると、クエリの残りの全命令文がコメントと判定されます。