编辑代码

CREATE DATABASE test;
use test;

/*
 * 创建产品表
 * 存储公司所有产品的详细信息
 */
CREATE TABLE product_table (
    product_id VARCHAR(50) PRIMARY KEY COMMENT '产品ID',
    product_name VARCHAR(100) NOT NULL COMMENT '产品全称',
    category VARCHAR(50) NOT NULL COMMENT '产品分类(如:电子产品、办公家具等)',
    brand VARCHAR(50) NOT NULL COMMENT '产品品牌',
    unit_price DECIMAL(10, 2) NOT NULL COMMENT '产品单价(货币单位)'
) COMMENT = '存储公司所有产品的数据';

/*
 * 创建销售记录表
 * 存储客户订单交易明细
 */
CREATE TABLE sales_record_table (
    order_id VARCHAR(50) NOT NULL COMMENT '订单ID',
    order_date DATE NOT NULL COMMENT '订单创建日期',
    customer_id VARCHAR(50) NOT NULL COMMENT '客户ID',
    product_id VARCHAR(50) NOT NULL COMMENT '产品唯ID(关联产品表)',
    quantity INT NOT NULL COMMENT '产品销售数量'
) COMMENT = '存储客户订单交易明细记录';




/*
 * 插入产品表示例数据
 * 初始化产品目录
 */
INSERT INTO product_table (product_id, product_name, category, brand, unit_price) VALUES
('P1001', 'Laptop', 'Electronics', 'Asus', 5999.00),        -- 笔记本电脑
('P1002', 'Smartphone', 'Electronics', 'Huawei', 3999.00),  -- 智能手机
('P2001', 'Office Chair', 'Office Furniture', 'IKEA', 899.00),     -- 办公椅
('P2002', 'Conference Table', 'Office Furniture', 'Staples', 2999.00), -- 会议桌
('P3001', 'Coffee Machine', 'Kitchen Appliances', 'Nestle', 1299.00);  -- 咖啡机


/*
 * 插入销售记录表示例数据
 * 模拟近两年的销售交易
 */
INSERT INTO sales_record_table (order_id, order_date, customer_id, product_id, quantity) VALUES
('ORD2023001', '2023-01-15', 'CUST001', 'P1001', 2),  -- 2023年1月订单
('ORD2023001', '2023-01-15', 'CUST001', 'P2001', 5),  -- 同一订单多个产品
('ORD2023002', '2023-02-20', 'CUST002', 'P1002', 3),  -- 2023年2月订单
('ORD2023003', '2023-03-10', 'CUST003', 'P3001', 1),  -- 2023年3月订单
('ORD2023004', '2023-04-05', 'CUST001', 'P2002', 2),  -- 2023年4月订单
('ORD2024001', '2024-01-10', 'CUST004', 'P1001', 1),  -- 2024年1月订单
('ORD2024001', '2024-01-10', 'CUST004', 'P3001', 2),  -- 同一订单多个产品
('ORD2024002', '2024-02-15', 'CUST002', 'P2001', 3);  -- 2024年2月订单



/*
 * 关联查询:销售记录与产品信息
 * 用途:为BI分析提供基础数据集
 * 包含字段:订单日期、订单ID、客户ID、产品ID、数量、产品名称、单价、订单金额
 */
SELECT 
    sr.order_date AS '订单日期',             -- 订单创建日期
    sr.order_id AS '订单ID',                -- 订单唯一标识
    sr.customer_id AS '客户ID',             -- 客户唯一标识
    sr.product_id AS '产品ID',              -- 产品唯一标识
    sr.quantity AS '销售数量',              -- 产品销售数量
    pt.product_name AS '产品名称',           -- 产品全称
    pt.unit_price AS '产品单价',            -- 产品单价
    (sr.quantity * pt.unit_price) AS '订单金额' -- 计算订单金额(数量×单价)
FROM sales_record_table sr
INNER JOIN product_table pt ON sr.product_id = pt.product_id ;