如何使用 Python 向数据库插入十万条数据?
首先,我们要知道,我们要往那张表里面插,(我们就以商品表为例)
第一步、
我们要在数据库,搜索我们要找的表
(我们要用一个商品信息,进行更换id,goods_id,name,达到插入十万条的目的)
# 插入商品主列表 搜索该商品 SELECT * FROM tools_goods where id =101101; # 商品参数表 SELECT * FROM tools_attribute where goods_id =101101; # 商品货品表 SELECT * FROM tools_product where goods_id =101101; # 商品规格表 SELECT * FROM tools_specification where goods_id =101101;
第二步、
复制 Insert 语句 (四张表都一样操作)
第三步、
进行更换id,goods_id,name 的值,设置为“{}” 方便后面更换(四张表都一样操作)
第四步、
1、把下面的复制到Python 里面(这个是用来插入商品数据)
1,输入自己数据库信息
2,替换掉“执行sql语句”
3,改一下 goods_id 的数量
4,执行‘Run’
# 导包 import pymysql # 连接数据库 conn = pymysql.Connect(host=www.自己的数据库.com, port=数据库端口号, user=数据库账号, password=数据库密码, database=数据库名, charset=utf8) # 创建游标 cursor = conn.cursor() # 执行sql语句 # 插入商品主列表 sql1 = "INSERT INTO tools.tools_goods (id, goods_sn, name) VALUES ({}, {},{})" # 商品参数表 sql2 = "INSERT INTO tools.tools_attribute (id, goods_id) VALUES ({}, {})" # 商品货品表 sql3 = "INSERT INTO tools.tools_product (id, goods_id) VALUES ({}, {})" # 商品规格表 sql4 = "INSERT INTO tools.tools_specification (id, goods_id) VALUES ({}, {})" # 循环十万条数据 goods_start = 100000 for i in range(100000): goods_id = goods_start + i print("插入第{}条商品数据,商品ID为{}".format(i+1, goods_id)) # 看占位符,有几个,设置几个goods_id,没有特殊要求就设置一样的 cursor.execute(sql1.format(goods_id, goods_id, goods_id)) cursor.execute(sql2.format(goods_id, goods_id)) cursor.execute(sql3.format(goods_id, goods_id)) cursor.execute(sql4.format(goods_id, goods_id)) #提交 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close()
第四步
2、把下面的复制到Python 里面(这个是用来插入用户数据)
(电话号拼接)mobile = "15013"+str(user_id) # 转换成字符串
# 导包 import pymysql # 建立连接 conn = pymysql.Connect(host=www.自己的数据库.com, port=数据库端口号, user=数据库账号, password=数据库密码, database=数据库名, charset=utf8) # 获取游标 cursor = conn.cursor() # 执行sql语句 sql1 = "INSERT INTO tools.tools_user (id, username, nickname, mobile) VALUES ({}, {}, {}, {})" sql2 = "INSERT INTO tools.tools_address (id, name, user_id, tel) VALUES ({}, {}, {}, {})" user_start = 100000 for i in range(100000): user_id = user_start + i mobile = "15013"+str(user_id) # 转换成字符串 addr_id = user_start + i print("插入第{}条用户数量,用户id为{}".format(i+1, user_id)) cursor.execute(sql1.format(user_id, user_id, user_id, mobile)) cursor.execute(sql2.format(addr_id, user_id, user_id, mobile)) # 连接提交 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close()
下一篇:
Hive SQL 通过生日精确计算年龄