在数据访问过程中,我已经写到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,但是我不确定语法是否正确。
注意事项:
这是关键任务数据库,某些数据框必须写为删除查询
如果这是一种不安全的方法,并且如果我需要回去研究以了解正确的数据库方法,那么我很高兴
我不是要找人为我编写或提供代码,而是要为我指明正确的方向
我设想这是类似..但我不确定如何指定正确的表:
df.to_sql('my_df', con, chunksize=1000)
答案 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")