CREATE DATABASE IF NOT EXISTS demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE demo; DROP TABLE IF EXISTS order_items; DROP TABLE IF EXISTS orders; DROP TABLE IF EXISTS users; CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(64) NOT NULL, email VARCHAR(128) NULL, status TINYINT NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE orders ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, amount DECIMAL(12,2) NOT NULL DEFAULT 0, status VARCHAR(16) NOT NULL DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_orders_user (user_id) ); CREATE TABLE order_items ( id INT PRIMARY KEY AUTO_INCREMENT, order_id INT NOT NULL, sku VARCHAR(64) NOT NULL, qty INT NOT NULL DEFAULT 1, price DECIMAL(12,2) NOT NULL DEFAULT 0, INDEX idx_items_order (order_id) ); INSERT INTO users (name, email, status) VALUES ('alice', 'alice@demo.local', 1), ('bob', 'bob@demo.local', 1), ('carol', 'carol@demo.local', 1), ('dave', 'dave@demo.local', 0), ('erin', 'erin@demo.local', 1); INSERT INTO orders (user_id, amount, status) VALUES (1, 99.50, 'paid'), (1, 12.00, 'pending'), (2, 250.00, 'paid'), (3, 8.80, 'cancelled'), (5, 41.20, 'paid'); INSERT INTO order_items (order_id, sku, qty, price) VALUES (1, 'SKU-A', 1, 99.50), (2, 'SKU-B', 2, 6.00), (3, 'SKU-C', 5, 50.00), (4, 'SKU-D', 1, 8.80), (5, 'SKU-E', 2, 20.60);