使用PYODBC

时间:2018-11-06 15:10:13

标签: sql-server pandas pyodbc

在数据访问过程中,我已经写到SQL Server数据库,我希望有人能够提供帮助。

我已经能够使用PYODBC成功连接到远程Microsoft SQL Server数据库,这使我可以将SQL查询传递到数据帧中并创建报告。

我现在想自动化我已经阅读过许多博客的“选择导入”手动方法,但我不明智地理解其背后的全部原理。

import pandas as pd
import pyodbc

SERVER = r'Remote SQL Server'
database = 'mydB'
username = 'datanovice'
password = 'datanovice'
cnxn = pyodbc.connect('Driver={SQL 
Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ 
password)
cursor = cnxn.cursor()

我可以使用它轻松读取查询并将它们传递到数据帧中。

写入MS SQL dB的最佳方法是什么?注意到它不是本地的,我很高兴将其传递给SQL Alchemy,但是我不确定语法是否正确。

注意事项:

  1. 这是关键任务数据库,某些数据框必须写为删除查询

  2. 如果这是一种不安全的方法,并且如果我需要回去研究以了解正确的数据库方法,那么我很高兴

  3. 我不是要找人为我编写或提供代码,而是要为我指明正确的方向

我设想这是类似..但我不确定如何指定正确的表:

df.to_sql('my_df', con, chunksize=1000)

1 个答案:

答案 0 :(得分:1)

pandas documentation可以看到,您需要将SQLAlchemy引擎对象作为第二个参数传递给to_sql方法。然后,您可以使用类似的

df.to_sql("table_name", engine, if_exists="replace")

SQLAlchemy documentation显示了如何创建引擎对象。如果使用ODBC DSN,则该语句将如下所示:

from sqlalchemy import create_engine
# ...
engine = create_engine("mssql+pyodbc://scott:tiger@some_dsn")