如何使用 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()
经验分享 程序员 微信小程序 职场和发展