📜  客户做了多少订单数据库python(1)

📅  最后修改于: 2023-12-03 15:09:27.515000             🧑  作者: Mango

客户做了多少订单数据库

本程序是一个基于 Python 的数据库应用,用于统计每个客户在指定时间范围内完成了多少订单。该程序需要连接到数据库,输入时间范围和客户名,即可查询该客户在该时间范围内完成的订单数量。

功能介绍
连接数据库

通过 Python 的第三方库 PyMySQL 连接到 MySQL 数据库。需要输入数据库的 IP 地址、端口号、用户名、密码以及具体的数据库名称。

import pymysql

conn = pymysql.connect(
    host='',
    port=3306,
    user='root',
    password='',
    database='orders'
)
输入查询条件

该程序需要输入查询的时间范围(开始时间和结束时间)和客户名,通过 Python 的 datetime 库来实现时间的转换和比较。

import datetime

start_time_str = input('请输入查询的开始时间(格式为 yyyy-mm-dd):')
start_time = datetime.datetime.strptime(start_time_str, '%Y-%m-%d')

end_time_str = input('请输入查询的结束时间(格式为 yyyy-mm-dd):')
end_time = datetime.datetime.strptime(end_time_str, '%Y-%m-%d')

customer_name = input('请输入客户名称:')
执行查询语句

执行 SQL 查询语句,使用 GROUP BY 对每个客户的订单进行统计,并输出查询结果。

cursor = conn.cursor()
sql = f"""
    SELECT customer_name, COUNT(*) as count
    FROM orders
    WHERE customer_name='{customer_name}'
    AND order_time BETWEEN '{start_time}' AND '{end_time}'
    GROUP BY customer_name
"""

cursor.execute(sql)
result = cursor.fetchone()

print(f"{customer_name} 在 {start_time_str} 到 {end_time_str} 完成了 {result[1]} 个订单")
使用说明
  1. 在命令行中运行该程序,输入数据库的 IP 地址、端口号、用户名、密码以及具体的数据库名称。
  2. 输入查询的开始时间和结束时间,格式为 yyyy-mm-dd。
  3. 输入客户名称,注意大小写。
  4. 程序会输出查询结果,即该客户在该时间范围内完成的订单数量。
代码片段
import pymysql
import datetime

conn = pymysql.connect(
    host='',
    port=3306,
    user='root',
    password='',
    database='orders'
)

start_time_str = input('请输入查询的开始时间(格式为 yyyy-mm-dd):')
start_time = datetime.datetime.strptime(start_time_str, '%Y-%m-%d')

end_time_str = input('请输入查询的结束时间(格式为 yyyy-mm-dd):')
end_time = datetime.datetime.strptime(end_time_str, '%Y-%m-%d')

customer_name = input('请输入客户名称:')

cursor = conn.cursor()
sql = f"""
    SELECT customer_name, COUNT(*) as count
    FROM orders
    WHERE customer_name='{customer_name}'
    AND order_time BETWEEN '{start_time}' AND '{end_time}'
    GROUP BY customer_name
"""

cursor.execute(sql)
result = cursor.fetchone()

print(f"{customer_name} 在 {start_time_str} 到 {end_time_str} 完成了 {result[1]} 个订单")
总结

该程序简单实用,可以方便地查询每个客户在指定时间范围内完成的订单数量。该程序还可以进一步完善,例如增加错误处理、查询多个客户的订单等功能。