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';