SQLからECサイト注文データを抽出する

商品と注文テーブルを持つリアルなECデータベースをCSVに変換します。複数テーブル、外部キー、混合データ型の処理を実演します。

Complex Queries

詳細な説明

ECサイトデータの抽出

実際のSQLダンプには、複数の関連テーブルが含まれていることがよくあります。この例では、商品と注文を持つ典型的なECデータベーススキーマから注文データを抽出する方法を示します。

SQLの例

CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  sku VARCHAR(20) NOT NULL,
  name VARCHAR(200) NOT NULL,
  price DECIMAL(10,2) NOT NULL,
  weight_kg FLOAT
);

INSERT INTO products (id, sku, name, price, weight_kg) VALUES
  (1, 'ELEC-001', 'Wireless Bluetooth Headphones', 79.99, 0.25),
  (2, 'ELEC-002', 'USB-C Charging Cable (2m)', 12.99, 0.05),
  (3, 'HOME-001', 'Stainless Steel Water Bottle', 24.95, 0.35),
  (4, 'ELEC-003', 'Portable Power Bank 10000mAh', 39.99, 0.22);

CREATE TABLE orders (
  id INTEGER PRIMARY KEY,
  order_number VARCHAR(20) NOT NULL,
  customer_email VARCHAR(255) NOT NULL,
  product_id INTEGER REFERENCES products(id),
  quantity INTEGER NOT NULL DEFAULT 1,
  total_amount DECIMAL(10,2) NOT NULL,
  order_date TIMESTAMP NOT NULL,
  status VARCHAR(20) DEFAULT 'pending'
);

INSERT INTO orders VALUES
  (1, 'ORD-2024-001', 'alice@example.com', 1, 2, 159.98, '2024-01-15 10:30:00', 'shipped'),
  (2, 'ORD-2024-002', 'bob@example.com', 2, 5, 64.95, '2024-01-15 14:22:00', 'delivered'),
  (3, 'ORD-2024-003', 'alice@example.com', 3, 1, 24.95, '2024-01-16 09:05:00', 'pending'),
  (4, 'ORD-2024-004', 'charlie@example.com', 4, 1, 39.99, '2024-01-16 16:45:00', 'shipped');

主要な抽出ポイント

このSQLには2つのテーブルが含まれているため、ツールはINSERT文からデータを抽出します。最初のINSERTは商品CSVを、2番目は注文を生成します。情報バーに検出されたテーブルが表示されます。

関連テーブルの処理

ツールは各INSERT文を独立して抽出します。JOINの実行や外部キー参照の解決は行いません。関連データを結合する必要がある場合:

  1. 各テーブルを個別のCSVに抽出(一度に1つを処理)
  2. スプレッドシートのVLOOKUPやpandasなどのツールでデータを結合
  3. または事前にSQL JOINクエリを記述し、結合結果を変換

ユースケース

分析プラットフォーム、CRMシステムへのインポート、または新しいデータベースへの移行のために、ECデータベースダンプから商品カタログと注文履歴を抽出する。

試してみる — SQL to CSV Converter

フルツールを開く