如何使用 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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值