1.SQL Server入门:
https://www.yiibai.com/sql_server
2.Python与SQL Server交互:
1)使用ODBC驱动程序
import pyodbc
# 使用 驱动连接
conn = pyodbc.connect('Driver={SQL Server};'
'Server=server_name;'
'Database=database_name;'
‘Trusted_Conection=yes;')
cursor = conn.cursor()
cursor.execute('select 1')
'DSN 连接'
conn2 = pyodbc.connect('DSN=SQL Server; Trusted_Conection=yes;')
cursor2 = conn2.cursor()
cursor2.execute('select 1')
2)SQLAlchemy 1.3文档
3) SQLAlchemy 1.1文档
注:对照查阅,连接字符串设置参考1.1文档;
from sqlslchemy import create_engine
engine = create_engine(r'mssql+pyodbc://@SQL Server'
engine.execute('select 1')
4)驱动配置
3.pandas.DataFrame.to_sql
1)参考pandas 0.24.2文档
4.pandas.read_sql
1)参考pandas 0.24.2文档
5.SQL Server日志设置
1)SQL Server 2014
- 遇到问题:
– Q1
– A。配置驱动;
– Q2(写入前提前统一数据类型!)
如代码所示,df写入后,读取或其它操作失败;
df.to_sql('dbo.开户申请表1', con=engine, if_exists='replace', index=False)
engine.execute('drop table dbo.开户申请表1')
engine.execute('select * from [Account Management].dbo.开户申请表1').fetchmany(1)
'''
ProgrammingError: (pyodbc.ProgrammingError) ('42S02',
"[42S02] [Microsoft][ODBC SQL Server Driver]
[SQL Server]Invalid object name 'Account Management.dbo.开户申请表1'.
(208) (SQLExecDirectW)")
[SQL: 'select * from [Account Management].dbo.开户申请表1']
(Background on this error at: http://sqlalche.me/e/f405)'''
- Tips
– 1.
– 2.(sql语句严格按照外面“”,中间‘’)