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

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

时间:2024-04-06 17:23:55浏览次数:27  
标签:Python 数据库 Excel number faker Faker 模块 MySQL

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()  # 关闭数据库连接

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

 

标签:Python,数据库,Excel,number,faker,Faker,模块,MySQL
From: https://www.cnblogs.com/lcl-cn/p/18117620

相关文章

  • Python 语法检查、格式化工具 Ruff 的各项配置
    一、配置文件1.1配置文件的位置和优先级Ruff支持pyproject.toml、ruff.toml和.ruff.toml三种文件(同时出现时,右边的优先级高);最近的配置文件生效,父级的将被忽略;可使用extend继承其他配置;命令行指定参数时,会覆盖配置文件中的选项(即命令行优先级更高);可使用target-ver......
  • 阿里云安装Mysql数据库
    阿里云安装mysql数据库安装数据库&创建数据库用户参照以下步骤在Linux实例中安装MySQL数据库新建数据库实例上述文章止步于新建数据库用户,下面是心间数据库实例的操作。mysql-ulhkTest-p登陆mysql(lhkTest是用户名)showdatabases;查询已有数据库createdatabasehome_......
  • mysql小结
    distinct:去重复值......
  • 【附源码】JAVA计算机毕业设计足球青训俱乐部管理后台系统(springboot+mysql+开题+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着足球运动的日益普及,足球青训作为培养足球后备人才的重要基地,其管理和发展逐渐受到广泛关注。然而,传统的青训俱乐部管理方式往往存在着信息化程度......
  • 【附源码】JAVA计算机毕业设计足球管理系统的设计与实现(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着足球运动的普及和发展,越来越多的球迷、球员、俱乐部和组织参与到这项运动中。然而,传统的足球管理方式往往存在效率低下、信息不透明、管理不规范......
  • 【附源码】JAVA计算机毕业设计租房管理系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人口流动的增加,租房需求日益增长,租房市场逐渐成为一个庞大的产业。然而,传统的租房管理方式往往效率低下,租客和屋主之间的信息......
  • 【附源码】JAVA计算机毕业设计租车宝出租车公司管理(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市交通的日益繁忙和人们出行需求的不断增长,出租车行业作为城市公共交通的重要组成部分,面临着巨大的发展机遇与挑战。传统的出租车管理方式往往......
  • java计算机毕业设计(附源码)原创网络文学管理系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义标题:原创网络文学管理系统的开发背景在数字化时代背景下,网络文学作为一种新兴的文学形式,以其便捷、互动性强的特点迅速崛起,成为文化消费的重要领域。随着网络文学......
  • java计算机毕业设计(附源码)远程家庭健康监测管理系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义标题:远程家庭健康监测管理系统的选题背景与意义随着现代科技的迅猛发展,人们对于健康管理的关注也日益增加。在这样的背景下,远程家庭健康监测管理系统应运而生,成为......
  • 入门级Python编程题(6)
    题目描述现在有 �t 毫升肥宅快乐水,要均分给 �n 名同学。每名同学需要 22 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 33 位),以及一共需要多少个杯子。输入格式输入一个实数 �t 和一个正整数 �n,使用空格隔开。输出格式输出两行。第一行输出......