SQL整形

SQLクエリを整形・最小化します。複数のSQL方言に対応し、構文ハイライト表示が可能です。

言語:
キーワード:
インデント:

入力

出力

💡 Tip: 入力すると自動的にSQLを整形します(500ms遅延)。Pretty/Minifyモードを切り替えて使用できます。

使い方

基本操作

  • モードを選択します(Pretty: 整形 / Minify: 最小化)
  • 言語(SQL方言)を選択します(Standard SQL、PostgreSQL、MySQL、SQLite)
  • CodeMirrorエディタに整形したいSQLクエリを入力またはペーストします
  • ファイル読み込み: SQLファイルをアップロードまたはドラッグ&ドロップして直接読み込み
  • 入力すると自動的に整形されます(500ms後)
  • シンタックスハイライトとコード補完が利用できます

整形オプション

  • モード: Pretty(読みやすく整形)またはMinify(最小化)
  • 言語: Standard SQL、PostgreSQL、MySQL、SQLite特有の構文に対応
  • キーワード: SQLキーワードを大文字、小文字、または現状維持
  • インデント: インデント幅(2-8スペース)

対応SQL方言

  • Standard SQL - 標準的なSQL構文
  • PostgreSQL - PostgreSQL特有の構文に対応
  • MySQL - MySQL特有の構文に対応
  • SQLite - SQLite特有の構文に対応

ファイル操作

  • ダウンロード: 入力・出力それぞれをファイルとして保存できます
  • 入力と交換: 整形結果を入力に戻して再整形できます
  • ファイル名はinput.sql / output.sqlとして保存されます

サンプル

SELECT文の整形

入力(圧縮):

SELECT u.id,u.name,u.email,COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id=o.user_id WHERE u.status='active' GROUP BY u.id,u.name,u.email HAVING COUNT(o.id)>5 ORDER BY order_count DESC LIMIT 10;

出力(Pretty、大文字キーワード、2スペースインデント):

SELECT
  u.id,
  u.name,
  u.email,
  COUNT(o.id) as order_count
FROM
  users u
  LEFT JOIN orders o ON u.id = o.user_id
WHERE
  u.status = 'active'
GROUP BY
  u.id,
  u.name,
  u.email
HAVING
  COUNT(o.id) > 5
ORDER BY
  order_count DESC
LIMIT
  10;

INSERT文

入力:

INSERT INTO users(name,email,created_at)VALUES('John Doe','john@example.com',NOW()),('Jane Smith','jane@example.com',NOW());

出力(Pretty):

INSERT INTO
  users (name, email, created_at)
VALUES
  ('John Doe', 'john@example.com', NOW()),
  ('Jane Smith', 'jane@example.com', NOW());

CREATE TABLE文

入力:

CREATE TABLE IF NOT EXISTS orders(id SERIAL PRIMARY KEY,user_id INTEGER NOT NULL REFERENCES users(id),product_id INTEGER NOT NULL REFERENCES products(id),quantity INTEGER NOT NULL DEFAULT 1,total_price DECIMAL(10,2)NOT NULL,status VARCHAR(20)DEFAULT'pending',created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

出力(Pretty):

CREATE TABLE
  IF NOT EXISTS orders (
    id SERIAL PRIMARY KEY,
    user_id INTEGER NOT NULL REFERENCES users (id),
    product_id INTEGER NOT NULL REFERENCES products (id),
    quantity INTEGER NOT NULL DEFAULT 1,
    total_price DECIMAL(10, 2) NOT NULL,
    status VARCHAR(20) DEFAULT 'pending',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  );

Minifyモード

入力:

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

出力(Minify):

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