项目概述
本项目使用 SQLite 数据库和 LibreOffice 创建了一个完整的销售管理系统数据库,包含客户、商品、订单等数据,并生成了所需的报表。
创建一个 销售管理系统数据库 ,主要用于:
主要用途
1. 教学实验
这是 Week 5 数据库实验课 的作业,目的是学习如何:
- 创建数据库表(客户、商品、订单等)
- 编写 SQL 查询
- 生成报表
2. 业务数据管理
系统可以管理:
- 客户信息 - 公司名称、联系方式、地址等
- 商品目录 - 商品名称、价格、库存等
- 订单处理 - 订单状态(已完成/待处理)、发货信息等
- 利润计算 - 每笔订单的利润分析
3. 报表生成
可以生成以下报表:
报表 用途 Customer Item List 客户商品目录 Profit by Order & Item 订单利润分析 Item Profit Summary 商品销售汇总
4. 数据分析
可以分析:
- 哪些商品卖得最好
- 哪些商品利润最高
- 销售额和利润趋势
文件说明
数据库文件
- Week5_Database.odb- LibreOffice Base 数据库文件,包含了所有表和查询
Python 脚本
| 文件 | 用途 |
|---|---|
| create_database.py | 创建数据库结构、表、插入示例数据、创建查询 |
| export_csv.py | 将查询结果导出为 CSV 文件 |
| verify_data.py | 验证数据库内容和查询结果 |
输出文件
| 文件 | 说明 |
|---|---|
| Customer_Item_List.pdf | 客户商品列表报表 (STEP 1) |
| Profit_By_Order_Item.pdf | 订单利润报表 (STEP 2) |
| Item_Profit_Summary.pdf | 商品利润汇总报表 (STEP 3) |
数据库结构
表 (Tables)
Customer- 客户表
- CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax
Category- 商品类别表
- CategoryID, CategoryName, Description
Item- 商品表
- ItemID, ItemName, CategoryID, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued
Order- 订单表
- OrderID, CustomerID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry, OrderStatus
Order Detail- 订单明细表
- OrderDetailID, OrderID, ItemID, UnitPrice, Quantity, Discount
查询 (Queries)
Customer Item List- 客户商品列表查询
- 显示所有客户和商品的交叉列表
Profit by Order & Item- 按订单和商品计算利润
- 显示已完成订单的利润详情
Order Detail Query- 订单明细查询
- 用于汇总分析的详细数据
Item Profit Summary- 商品利润汇总
- 按商品汇总销量和利润
使用方法
1. 重新创建数据库
python3 create_database.py2. 导出查询结果为 CSV
python3 export_csv.py3. 验证数据
python3 verify_data.py4. 使用 LibreOffice 打开数据库
"C:\Program Files\LibreOffice\program\soffice.exe""Week5_Database.odb"5. 将 CSV 转换为 Excel
"C:\Program Files\LibreOffice\program\soffice.exe"--headless--invisible--convert-to xlsx input.csv--outdiroutput_dir6. 将 Excel 转换为 PDF
"C:\Program Files\LibreOffice\program\soffice.exe"--headless--invisible--convert-to pdf input.xlsx--outdiroutput_dir数据分析结果
根据 STEP 3 的要求,系统可以分析以下内容:
- 销量最高的商品
- 销量最低的商品
- 利润最高的商品
- 利润最低的商品
环境要求
- Python 3.x
- LibreOffice 26.x
- pypdf 库 (用于 PDF 处理)
安装依赖
pipinstallpypdf