-- Customers Table CREATE TABLE Customers ( customer_id INT PRIMARY KEY AUTO_INCREMENT, customer_name VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE, phone VARCHAR(20), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Orders Table CREATE TABLE Orders ( order_id INT PRIMARY KEY AUTO_INCREMENT, customer_id INT, order_date DATE NOT NULL, total_amount DECIMAL(10,2) NOT NULL, FOREIGN KEY (customer_id) REFERENCES Customers(customer_id) ON DELETE CASCADE ); -- Inserting Customers INSERT INTO Customers (customer_name, email, phone) VALUES ('Alice Johnson', '[email protected]', '1234567890'), ('Bob Smith', '[email protected]', '2345678901'), ('Charlie Brown', '[email protected]', '3456789012'), ('David Lee', '[email protected]', '4567890123'), ('Emma Watson', '[email protected]', '5678901234'), ('Frank Castle', '[email protected]', '6789012345'), ('Grace Harper', '[email protected]', '7890123456'), ('Henry Ford', '[email protected]', '8901234567'), ('Ivy Parker', '[email protected]', '9012345678'), ('Jack Ryan', '[email protected]', '0123456789'); -- Orders: Ensuring customers have transactions across both periods INSERT INTO Orders (customer_id, order_date, total_amount) VALUES -- Purchases in the last 30 days (relative to CURDATE()) (1, DATE_SUB(CURDATE(), INTERVAL 10 DAY), 120.50), (2, DATE_SUB(CURDATE(), INTERVAL 15 DAY), 75.30), (3, DATE_SUB(CURDATE(), INTERVAL 5 DAY), 200.00), (4, DATE_SUB(CURDATE(), INTERVAL 25 DAY), 99.99), (5, DATE_SUB(CURDATE(), INTERVAL 12 DAY), 50.00), -- Purchases in the previous 30-60 days (relative to CURDATE()) (1, DATE_SUB(CURDATE(), INTERVAL 40 DAY), 110.00), (2, DATE_SUB(CURDATE(), INTERVAL 45 DAY), 90.75), (3, DATE_SUB(CURDATE(), INTERVAL 50 DAY), 180.00), (6, DATE_SUB(CURDATE(), INTERVAL 35 DAY), 45.99), (7, DATE_SUB(CURDATE(), INTERVAL 55 DAY), 210.00), -- More purchases across different periods (8, DATE_SUB(CURDATE(), INTERVAL 20 DAY), 95.50), (9, DATE_SUB(CURDATE(), INTERVAL 28 DAY), 60.30), (10, DATE_SUB(CURDATE(), INTERVAL 14 DAY), 300.00), (8, DATE_SUB(CURDATE(), INTERVAL 38 DAY), 120.00), (9, DATE_SUB(CURDATE(), INTERVAL 42 DAY), 80.75), (10, DATE_SUB(CURDATE(), INTERVAL 52 DAY), 130.00);