使用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() # 关闭数据库连接
最后,我们关闭数据库连接,释放资源。
相关文章:
使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel
Python插入100万条数据到MySQL数据库 步骤一:导入所需模块和库 首先,我们需要导入 MySQL 连接器模块和 Faker 模块。MySQL 连接器模块用于连接到 MySQL 数据库,而 Faker 模块用于生成虚假数据。 import mysql.connector # 导入 MySQL 连接…...
【备忘录】openssl记录
openssl genrsa -out ca.key 2048 openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt -subj “/CCN/STBeijing/LBeijing/Okubernetes/OUKubernetes-manual/CNkubernetes-ca” openssl genrsa -out etcd-ca.key 2048 openssl req -x509 -new -nodes -key etc…...
hadoop编程之工资序列化排序
数据集展示 7369SMITHCLERK79021980/12/17800207499ALLENSALESMAN76981981/2/201600300307521WARDSALESMAN76981981/2/221250500307566JONESMANAGER78391981/4/22975207654MARTINSALESMAN76981981/9/2812501400307698BLAKEMANAGER78391981/5/12850307782CLARKMANAGER78391981/…...
OpenXR手部跟踪接口与VIVE OpenXR扩展详细解析
随着虚拟现实技术的发展,手部跟踪已成为提高沉浸感和交互性的关键技术。OpenXR标准为开发者提供了一套手部跟踪的扩展接口,特别是针对VIVE设备的特定实现。以下是这些接口和类的详细解释: 1. VIVE.OpenXR.Hand VIVE.OpenXR.Hand 是HTC VIVE…...
慎投!5本On Hold全被剔除!新增9本SCI/SSCI被除名!4月WOS更新
本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…...
华为云CodeArts IDE For Python 快速使用指南
CodeArts IDE 带有 Python 扩展,为 Python 语言提供了广泛的支持。Python 扩展可以利用 CodeArts IDE 的代码补全、验证、调试和单元测试等特性,与多种 Python 解释器协同工作,轻松切换包括虚拟环境和 conda 环境的 Python 环境。本文简要概述…...
C# 截图并保存为图片
在winform开发中,有时会用到截图并保存为图片的时候,这里列了三种保存图片的可能情况。 将窗体截图保存成图片的方式是: Bitmap bit new Bitmap(this.Width, this.Height);//实例化一个和窗体一样大的bitmap Graphics g Graphics.FromImag…...
[html]一个动态js倒计时小组件
先看效果 代码 <style>.alert-sec-circle {stroke-dasharray: 735;transition: stroke-dashoffset 1s linear;} </style><div style"width: 110px; height: 110px; float: left;"><svg style"width:110px;height:110px;"><cir…...
Hive-Sql复杂面试题
参考链接:hive sql面试题及答案 - 知乎 有哪些好的题目都可以给我哦 我来汇总到一起 1、编写sql实现每个用户截止到每月为止的最大单月访问次数和累计到该月的总访问次数 数据: userid,month,visits A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,…...
WPS二次开发系列:WPS SDk功能就概览
作者持续关注WPS二次开发专题系列,持续为大家带来更多有价值的WPS开发技术细节,如果能够帮助到您,请帮忙来个一键三连,更多问题请联系我(QQ:250325397) 作者通过深度测试使用了WPS SDK提供的Demo࿰…...
华为OD-C卷-结队编程[200分]
题目描述 某部门计划通过结队编程来进行项目开发, 已知该部门有 N 名员工,每个员工有独一无二的职级,每三个员工形成一个小组进行结队编程, 结队分组规则如下: 从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分别为 level[i],level[j],level[k], 结队小组满…...
连连看游戏页面网站源码,直接使用
可以上传自己喜欢的图片 游戏页面 通关页面 源码免费下载地址抄笔记 (chaobiji.cn)...
在 Kubernetes 1.24 中使用 Docker:配置与应用指南
在 Kubernetes 1.24 中使用 Docker:配置与应用指南 引言 随着 Kubernetes 社区对容器运行时接口(CRI)的标准化推进,Docker 原生支持在 Kubernetes 1.24 版本中被弃用。然而,许多开发者和组织仍希望继续使用 Docker。…...
Canvas使用详细教学:从基础绘图到进阶动画再到实战(海报生成、Flappy Bird 小游戏等),掌握绘图与动画的秘诀
一、Canvas基础 1. Canvas简介 Canvas是HTML5引入的一种基于矢量图形的绘图技术,它是一个嵌入HTML文档中的矩形区域,允许开发者使用JavaScript直接操作其内容进行图形绘制。Canvas元素不包含任何内在的绘图能力,而是提供了一个空白的画布&a…...
【MATLAB 分类算法教程】_2粒子群算法优化支持向量机SVM分类 - 教程和对应MATLAB代码
分类代码案例2:粒子群算法优化支持向量机SVM分类 - MATLAB完全代码教程 1. 初始化代码2. 读取数据代码3.数据预处理代码4.利用粒子群算法PSO求解最佳的SVM参数c和g代码5.根据最佳的参数进行SVM模型训练代码6.SVM模型预测代码7.准确率分析以及分类结果对比作图代码本文以红酒数…...
Vue2电商前台项目(三):完成Search搜索模块业务
目录 一、请求数据并展示 1.写Search模块的接口 2.写Vuex中的search仓库(三连环) 3.组件拿到search仓库的数据 用getters简化仓库中的数据 4.渲染商品数据到页面 5.search模块根据不同的参数获取数据展示 (1)把派发action…...
算法思想总结:链表
一、链表的常见技巧总结 二、两数相加 . - 力扣(LeetCode) class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点,方便尾插List…...
Android Room 记录一个Update语句不生效的问题解决记录
代码展示 1.数据实体类 Entity public class User {PrimaryKey(autoGenerate true)private long id;private String name;private String age;private String sex;public User(String name, String age, String sex) {this.name name;this.age age;this.sex sex;}public …...
使用SpringBoot3+Vue3开发公寓管理系统
项目介绍 公寓管理系统可以帮助公寓管理员更方便的进行管理房屋。功能包括系统管理、房间管理、租户管理、收租管理、房间家具管理、家具管理、维修管理、维修师傅管理、退房管理。 功能介绍 系统管理 用户管理 对系统管理员进行管理,新增管理员,修改…...
有且仅有的10个常见的排序算法,东西不多,怎么就背不下来呢
就这么跟你说吧,面试中肯定会出排序算法的算法题,你只需要背下来代码背下来他们的时间复杂度和空间复杂度就能蒙混过关。 不管你是前端还是后端,关于排序的算法有且仅有这 10个,如果你用心了,怎么会记不住呢。看完这篇…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
