常誉瀚 | 2026.06 | 求职方向:SQL数据库开发
手写完整电商数据库:4张表、15个用户、10个商品、30条订单。包含15道SQL练习题,从基础查询到索引优化,覆盖面试高频考点。
- MySQL 8.0
- 存储引擎:InnoDB
- 字符集:utf8mb4
t_user(用户表)
├── id, username, phone, city, reg_time
│
t_category(分类表)
├── id, name, pid(父分类,支持二级分类)
│
t_product(商品表)
├── id, name, category_id, price, stock, status
│
t_order(订单表)
└── id, user_id, product_id, quantity, total_price, order_time
├── 01-schema.sql # 建库建表(4张表)
├── 02-data.sql # 测试数据(15用户+10商品+30订单)
├── 03-queries/
│ ├── basic.sql # 基础查询5题(WHERE/LIKE/BETWEEN/ORDER BY)
│ ├── join.sql # 连表查询5题(JOIN/GROUP BY/聚合函数)
│ └── advanced.sql # 进阶查询5题(子查询/HAVING/LIMIT/去重)
├── 04-index/
│ ├── before_index.sql # 加索引前的执行计划
│ └── after_index.sql # 加索引后的对比 + 面试话术
└── README.md
# 1. 导入数据库
mysql -u root -p < 01-schema.sql
mysql -u root -p < 02-data.sql
# 2. 逐题练习
mysql -u root -p < 03-queries/basic.sql
mysql -u root -p < 03-queries/join.sql
mysql -u root -p < 03-queries/advanced.sql
# 3. 索引实验
mysql -u root -p < 04-index/before_index.sql
mysql -u root -p < 04-index/after_index.sql这个项目能回答以下面试题:
- "说下你的SQL项目" → 电商数据库,4表15题
- "JOIN用过哪些" → INNER/LEFT,5道联表练习
- "索引怎么优化" → before vs after 对比实验
- "GROUP BY和HAVING区别" → advanced.sql 第1题
- "子查询怎么写" → advanced.sql 第4题
每天推一次代码,30天后GitHub全是绿色格子