Python数据库查询结果保存到数据库表

目录

1.不同数据库之间的数据迁移

2.同一数据库的不同表间的数据迁移


1.不同数据库之间的数据迁移

	import pymysql
	
	
	#查询的数据表
	db2=pymysql.connect('127.0.0.1','root','1234','o_sheet')
	cursor2=db2.cursor() //其实就是用来获得python执行Mysql命令的方法,也就是操作游标
	len2=cursor2.execute('select * from address ' )
	
	
	#插入的数据表
	db1=pymysql.connect('localhost','root','1234','i_sheet')
	cursor1=db1.cursor()
	sql="insert into address_test() value(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
	
	num=11
	
	for i in range(int(len2/num)):
	    print(i)
	    #查询表获取num条记录
	    data1=cursor2.fetchmany(num)
	    #插入表executemany能同时执行多条语句,第一个参数为sql模板字符串,第二个为sql的参数,是一个列表
	    cursor1.executemany(sql,data1)
	
	#这样可以一次性全部导入
	data2=cursor2.fetchall() //返回查询到的所有记录
	cursor1.executemany(sql,data2)
	
	
	db1.commit()
	db1.close()
	db2.close()	

2.同一数据库的不同表间的数据迁移

    import pymysql
    def cate(host,user,password,dbname):
# 原始数据的数据连接 			
 con=pymysql.connect(host=host,user=user,password=password,database=dbname,charset='utf8')
        print("ok")
        cursor = con.cursor()
# 迁移库的数据连接
#    db2 = pymysql.connect('192.168.0.110', 'root', '1234', 'test1')
#    cursor2 = db2.cursor()
# 批量插入语句
   	sql1 ='''insert into 告警表1\
                    (根源告警标识,确认状态,告警级别,网元,values(%s, %s, %s, %s)'''
   	sql2 ='''insert into 告警表2\
                    (根源告警标识,确认状态,告警级别,网元,values(%s, %s, %s, %s)'''


    # 定义查询语句
   	len1 = cursor.execute("select * from alldata where 告警码 ='低级')
   	print(len1)
# 每次循环导入的数据量
   	num = 11
   	for i in range(int(len1/num)):
   	    print(i)
   	    data1 = cursor.fetchmany(num)
   	    cursor.executemany(sql1, data1)
        
   	len2 = cursor.execute("select * from alldata where 告警码 ='高级'")
  	    print(len2)     
  	for i in range(int(len2/num)):
   	    print(i)
     	data2 = cursor.fetchmany(num)
     	cursor.executemany(sql2, data2)

# 把剩下的数据一次性导入
#    data = cursor.fetchall()
#    cursor.executemany(sql1, data)

# 这种可以全部导入
# data = cursor1.fetchall()
# cursor.executemany(sql, data)

# 提交到数据库
  	 con.commit()
# 关闭数据库连接
   	 con.close()

if __name__ == "__main__":
  	  cate('127.0.0.1','root','root','test')

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值