python读取Excel数据,批量生成可执行的sql语句存入TXT文件

使用Python和pandas库从Excel文件中读取数据,批量生成更新操作的SQL语句,并将这些SQL语句保存到TXT文件中。此方法适用于数据迁移或数据库更新任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python读取Excel数据,批量生成可执行的sql语句存入TXT文件

import pandas as pd

#读取excel文件数据
df = pd.read_excel('data.xlsx')

all_sql = ''
#生成sql语句
for index,row in df.iterrows():
    #以update为例,可替换成其他操作sql语句
    sql = "update table_name set field1={} where field2={};".format(row['field1'],row['field2'])
    all_sql += sql
    
#写入txt
with open('sqls.txt','w') as f:
    f.write(all_sql)
### Python读取数据并插入到SQL数据库 为了完成Python程序从其他源读取数据并将这些数据插入到SQL数据库中的任务,可以遵循以下方法: #### 连接至SQL Server数据库 对于连接到SQL Server数据库而言,通常会使用`pyodbc`或者`pymssql`这样的库来建立连接。这里以`pyodbc`为例说明如何创建一个SQL Server的连接[^3]。 ```python import pyodbc conn_str = ( 'DRIVER={ODBC Driver 17 for SQL Server};' 'SERVER=localhost;' 'DATABASE=testdb;' 'UID=user;' 'PWD=password' ) connection = pyodbc.connect(conn_str) cursor = connection.cursor() ``` #### 插入数据SQL Server 当准备好了要插入的数据之后,可以通过构建合适的INSERT语句并通过游标的`execute()`函数执行该命令。假设有一个名为`employees`的表,并希望向其中添加新记录,则代码可能看起来像这样: ```python insert_query = """ INSERT INTO employees (id, first_name, last_name) VALUES (?, ?, ?); """ data_to_insert = [ ('1', 'John', 'Doe'), ('2', 'Jane', 'Smith') ] for row in data_to_insert: cursor.execute(insert_query, row) # 提交更改 connection.commit() # 关闭资源 cursor.close() connection.close() ``` #### 处理外部数据源 如果目标是从Excel文件或其他形式的数据集中提取信息再存入SQL Server,在处理这部分逻辑之前还需要额外引入相应的库来进行数据解析工作。比如针对Excel文档可选用`openpyxl`或`pandas`等工具先加载表格内容转换成适合批量导入的形式后再按照上述方式写入数据库[^4]。 例如利用Pandas读取CSV文件并向MySQL数据库中插入数据的例子如下所示: ```python import pandas as pd from sqlalchemy import create_engine df = pd.read_csv('example.csv') engine = create_engine('mysql+pymysql://user:password@localhost/testdb?charset=utf8mb4') with engine.connect() as conn: df.to_sql(name='table_name', con=conn, if_exists='append', index=False) ``` 此段脚本展示了怎样借助于`pandas.DataFrame.to_sql()`便捷地把整个DataFrame对象一次性送入指定的目标表里去[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值