SQLでダミーデータを生成する方法


  1. 単一のテーブルにダミーデータを挿入する方法:
-- テーブル作成
CREATE TABLE dummy_data (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);
-- ダミーデータの挿入
INSERT INTO dummy_data (id, name, age)
SELECT 
    ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id,
    CONCAT('Name ', ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) AS name,
    FLOOR(RAND() * 100) AS age
FROM 
    information_schema.columns;

上記のコードでは、dummy_dataというテーブルを作成し、idnameageの3つの列を持つテーブルを作成します。INSERT INTOステートメントでは、ROW_NUMBER()関数を使用して一連の数値を生成し、CONCAT()関数を使用して名前を生成し、FLOOR(RAND() * 100)を使用して0から100の範囲でランダムな年齢を生成しています。

  1. 複数のテーブルにダミーデータを挿入する方法:
-- テーブル作成
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);
CREATE TABLE orders (
    id INT PRIMARY KEY,
    user_id INT,
    product VARCHAR(50)
);
-- ダミーデータの挿入
INSERT INTO users (id, name)
SELECT 
    ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id,
    CONCAT('User ', ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) AS name
FROM 
    information_schema.columns;
INSERT INTO orders (id, user_id, product)
SELECT 
    ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id,
    (ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) % 100) + 1 AS user_id,
    CONCAT('Product ', ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) AS product
FROM 
    information_schema.columns;

上記のコードでは、usersordersという2つのテーブルを作成します。usersテーブルにはidnameの2つの列があり、ordersテーブルにはiduser_idproductの3つの列があります。INSERT INTOステートメントでは、ROW_NUMBER()関数を使用して一連の数値を生成し、CONCAT()関数を使用して名前や製品名を生成しています。

これらは、ダミーデータを生成するための基本的な方法の一部です。実際のデータモデルや要件に合わせてカスタマイズすることも可能です。