当前位置: 首页 > news >正文

使用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 查询结果为 DataFrameif df.empty:  # 如果查询结果为空,则退出循环breakoutput_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()  # 关闭数据库连接

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

http://www.lryc.cn/news/340417.html

相关文章:

  • 【备忘录】openssl记录
  • hadoop编程之工资序列化排序
  • OpenXR手部跟踪接口与VIVE OpenXR扩展详细解析
  • 慎投!5本On Hold全被剔除!新增9本SCI/SSCI被除名!4月WOS更新
  • 华为云CodeArts IDE For Python 快速使用指南
  • C# 截图并保存为图片
  • [html]一个动态js倒计时小组件
  • Hive-Sql复杂面试题
  • WPS二次开发系列:WPS SDk功能就概览
  • 华为OD-C卷-结队编程[200分]
  • 连连看游戏页面网站源码,直接使用
  • 在 Kubernetes 1.24 中使用 Docker:配置与应用指南
  • Canvas使用详细教学:从基础绘图到进阶动画再到实战(海报生成、Flappy Bird 小游戏等),掌握绘图与动画的秘诀
  • 【MATLAB 分类算法教程】_2粒子群算法优化支持向量机SVM分类 - 教程和对应MATLAB代码
  • Vue2电商前台项目(三):完成Search搜索模块业务
  • 算法思想总结:链表
  • Android Room 记录一个Update语句不生效的问题解决记录
  • 使用SpringBoot3+Vue3开发公寓管理系统
  • 有且仅有的10个常见的排序算法,东西不多,怎么就背不下来呢
  • Mac安装配置ElasticSearch和Kibana 8.13.2
  • javaWeb项目-快捷酒店管理系统功能介绍
  • 闲不住,手写一个数据库文档生成工具
  • 在群晖上安装GPT4Free
  • C# 语言类型(四)—传递参数及其修饰符
  • 刷穿力扣006-剑指offer一数组——02寻找目标值-二维数组
  • 爬虫(小案例)
  • 环信 IM 客户端将适配鸿蒙 HarmonyOS
  • 伪元素的使用
  • TensorFlow学习之:高级应用和扩展
  • maya模板导入动画