python sql逐行读取数据库数据_Python:使用SQL查询和嵌套的for循环来读取数据并将其重新插入数据库?...

我已经用了两个星期了。我的工作任务是生成一个脚本,该脚本将读取数据库,执行一些计算,然后用计算的值更新数据库。在

我知道如何使用sqlite3执行SQL查询,也知道如何更新表。在

目前我使用的是:c.execute("SELECT x,y,z FROM {tn} "\

.format(tn=Table1, x=column1, y=column2, z= column3))

选择信息。在

然后我执行计算,并可以使用每个变量的一个update语句更新表。所以从本质上说,这是相当低效的。在

我知道有代码可以轻松地将值插入表中,即:

^{pr2}$

但我找不到的是,有没有一种方法可以合并for循环和update表?一、 从数据库中读取值(列不一定相邻),然后执行一个更新表查询,其结构与上面的for循环类似?在

编辑:

我用字典代替switch/case语句。

我把cases定义为函数,switch函数定义为“cases”。在

对于每种情况,我将从数据库中获取不同的信息,并执行不同的计算。我可以这样做,目前,我使用每个函数的两个四个UPDATE语句用新的计算值更新数据库。我的问题是:是否可以一次只使用一个语句来更新具有多个值的表?在

像这样:c.execute("UPDATE table SET 'value' WHERE columnName = {cn}

SET 'value' WHERE ColumnName2 = {cn2}

...

")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的MySQL Connector模块来实现从MySQL数据库读取数据和写入数据到MySQL数据库。 以下是一个简单的示例代码,说明如何使用Python连接到MySQL数据库读取数据并将其写入另一个MySQL数据库: ```python import mysql.connector # 设置源数据库连接参数 src_db_config = { 'host': 'localhost', 'user': 'root', 'password': 'password', 'database': 'source_db' } # 设置目标数据库连接参数 dest_db_config = { 'host': 'localhost', 'user': 'root', 'password': 'password', 'database': 'destination_db' } # 连接源数据库 src_db = mysql.connector.connect(**src_db_config) # 连接目标数据库 dest_db = mysql.connector.connect(**dest_db_config) # 获取源数据库游标 src_cursor = src_db.cursor() # 获取目标数据库游标 dest_cursor = dest_db.cursor() # 查询数据库中的数据 src_cursor.execute("SELECT * FROM source_table") # 读取查询结果 results = src_cursor.fetchall() # 将查询结果写入目标数据库 for result in results: dest_cursor.execute("INSERT INTO destination_table (col1, col2, col3) VALUES (%s, %s, %s)", result) # 提交目标数据库更改 dest_db.commit() # 关闭游标和数据库连接 src_cursor.close() dest_cursor.close() src_db.close() dest_db.close() ``` 在上面的代码中,首先设置源数据库和目标数据库的连接参数,然后使用`mysql.connector.connect`方法连接到两个数据库。接下来,使用数据库游标执行查询,并使用`fetchall`方法读取查询结果。最后,使用目标数据库游标执行插入语句将结果写入目标数据库,并使用`commit`方法提交更改。最后,关闭游标和数据库连接。 请注意,上面的示例代码仅供参考。在实际使用中,您可能需要根据自己的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值