Python+SQL Server

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语句严格按照外面“”,中间‘’)
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43650411/article/details/89028162