• 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel


    Python插入100万条数据到MySQL数据库

    步骤一:导入所需模块和库

    首先,我们需要导入 MySQL 连接器模块和 Faker 模块。MySQL 连接器模块用于连接到 MySQL 数据库,而 Faker 模块用于生成虚假数据。

    import mysql.connector  # 导入 MySQL 连接器模块
    from faker import Faker  # 导入 Faker 模块,用于生成虚假数据

    步骤二:创建 Faker 实例

    然后,我们创建一个 Faker 实例,以便使用其功能生成虚假数据。

    faker = Faker() # 创建 Faker 实例

    步骤三:连接到 MySQL 数据库

    接下来,我们使用 MySQL 连接器模块连接到 MySQL 数据库。需要提供主机地址、用户名、密码和数据库名称。

    conn = mysql.connector.connect(
        host='localhost',  # 数据库主机地址
        user='root',       # 数据库用户名
        password='123456', # 数据库密码
        database='test2'   # 数据库名称
    )

    步骤四:创建游标对象

    然后,我们创建一个游标对象,用于执行 SQL 语句。

    cursor = conn.cursor()  # 创建游标对象,用于执行 SQL 语句

    步骤五:插入虚假数据

    现在,我们准备开始插入虚假数据到数据库中。我们使用循环生成多条数据,并将其插入到数据库表中。

    复制代码
    for _ in range(1000000):  # 循环100万次,插入100万条数据
        # 使用 Faker 实例生成虚假数据
        name = faker.name()                   # 姓名
        address = faker.address()             # 地址
        email = faker.email()                 # 电子邮件
        phone_number = faker.phone_number()   # 电话号码
        job_title = faker.job()               # 职位
        company = faker.company()             # 公司
        date_of_birth = faker.date_of_birth() # 出生日期
        credit_card_number = faker.credit_card_number()  # 信用卡号
    
        # 定义 SQL 插入语句
        sql = "INSERT INTO fake_data (name, address, email, phone_number, job_title, company, date_of_birth, credit_card_number) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"
    
        # 设置参数值
        val = (name, address, email, phone_number, job_title, company, date_of_birth, credit_card_number)
    
        # 执行 SQL 插入语句
        cursor.execute(sql, val)
    复制代码

    步骤六:提交事务和关闭连接

    最后,我们提交事务以保存更改,并关闭游标和数据库连接。

    conn.commit()   # 提交事务,保存更改
    cursor.close()  # 关闭游标
    conn.close()    # 关闭数据库连接

    使用 Python 将 MySQL 数据库中的数据逐步查询并写入多个 Excel 文件

    步骤一:导入所需模块和库

    首先,我们需要导入 os 模块用于文件和目录操作,pandas 库用于数据处理,以及 mysql.connector 模块用于连接 MySQL 数据库。

    import os  # 导入 os 模块,用于文件和目录操作
    import pandas as pd  # 导入 pandas 库并使用 pd 别名,用于数据处理
    import mysql.connector  # 导入 mysql.connector 模块,用于连接 MySQL 数据库

    步骤二:连接到 MySQL 数据库

    conn = mysql.connector.connect(
        host='localhost',  # 数据库主机地址
        user='root',       # 数据库用户名
        password='123456', # 数据库密码
        database='test2'   # 数据库名称
    )

    步骤三:设置每个 Excel 文件的行数限制和输出文件夹

    chunk_size = 50000  # 每个 Excel 文件的行数限制
    output_folder = "output_data"  # 输出文件夹名称
    if not os.path.exists(output_folder):  # 如果文件夹不存在,则创建
        os.makedirs(output_folder)

    步骤四:逐步查询数据库并写入 Excel 文件

    复制代码
    offset = 0  # 查询偏移量初始值为0
    while True:  # 使用循环查询数据库,直到数据查询完毕
        query = f"SELECT * FROM fake_data LIMIT {offset}, {chunk_size}"  # 构造 SQL 查询语句
        df = pd.read_sql(query, conn)  # 使用 pandas 读取 SQL 查询结果为 DataFrame
        if df.empty:  # 如果查询结果为空,则退出循环
            break
        output_file = os.path.join(output_folder, f"output_{offset // chunk_size + 1}.xlsx")  # 构造输出文件路径
        df.to_excel(output_file, index=False)  # 将 DataFrame 写入 Excel 文件,不写入索引列
        offset += chunk_size  # 更新查询偏移量,准备下一次查询
    复制代码

    步骤五:关闭数据库连接

    conn.close()  # 关闭数据库连接

    最后,我们关闭数据库连接,释放资源。

     
  • 相关阅读:
    TS 变量类型
    Ant Design Pro从零到一(认识AntD)
    目录自动清洗
    VUE指令、computed计算属性和watch 侦听器(附带详细案例)
    静态路由———初学
    mac+idea中安装配置gradle方法
    【图论训练】天气晴朗的魔法【最小生成树】
    基于 Docker 构建轻量级 CI 系统:Gitea 与 Woodpecker CI 集成
    Oracle Primavera Unifier Version 22.10 新特征
    Android Studio 利用系统签名打包apk
  • 原文地址:https://www.cnblogs.com/lcl-cn/p/18117620