pyodbc 批量导入数据
时间: 2024-10-19 15:10:14 浏览: 74
PyODBC是一个Python库,用于连接到ODBC兼容的数据源,包括SQL Server、Oracle、MySQL等数据库。如果你需要批量导入数据,PyODBC可以配合pandas库一起使用,因为pandas有处理大量数据的能力。
以下是使用PyODBC和pandas批量导入数据的基本步骤:
1. **安装所需库**:首先确保已经安装了`pyodbc`和`pandas`。如果没有,可以使用pip安装:
```
pip install pyodbc pandas
```
2. **连接到数据库**:通过`pyodbc.connect()`函数建立与数据库的连接,指定数据库驱动、服务器地址、数据库名、用户名和密码。
```python
import pyodbc
conn_str = (
r'DRIVER={ODBC Driver 17 for SQL Server};'
r'SERVER=your_server_address;'
r'DATABASE=your_database_name;'
r'UID=your_username;'
r'PWD=your_password;'
)
conn = pyodbc.connect(conn_str)
```
3. **读取数据文件**:使用pandas从CSV或其他文件加载数据,假设数据在CSV文件`data.csv`中。
```python
data_df = pd.read_csv('data.csv')
```
4. **创建游标**:从连接获取游标,以便执行SQL命令。
```python
cursor = conn.cursor()
```
5. **设置批次插入**:如果数据文件很大,可以设置批量插入大小(例如1000行),减少SQL查询次数。
```python
chunksize = 1000
```
6. **循环插入数据**:将数据分块并逐块插入数据库。
```python
for i in range(0, len(data_df), chunksize):
chunk = data_df.iloc[i:i + chunksize]
table_name = 'your_table_name'
insert_query = f"INSERT INTO {table_name} VALUES (?, ?, ...)" # 根据表结构调整占位符
rows_to_insert = [(row[0], row[1], ...) for index, row in chunk.iterrows()]
cursor.executemany(insert_query, rows_to_insert)
```
7. **提交事务**:批量操作完成后,别忘了提交事务。
```python
conn.commit()
```
8. **关闭连接**:最后记得关闭连接以释放资源。
```python
conn.close()
```
阅读全文
相关推荐


















