从Python连接到SQL Server

why*_*heq 5 sql-server ipython python-3.x pandas jupyter-notebook

我想通过集成安全性从IPython笔记本连接到SQL-Server数据库.

这可能吗?我猜是的.

如何格式化以下连接字符串?

import pandas as pd
import pandas.io.sql as psql
sql = "SELECT * FROM WHdb.dbo.vw_smallTable"
cnx = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=WHdb;Data Source=OurServerName"
data = psql.read_sql(sql, cnx)
Run Code Online (Sandbox Code Playgroud)

这只是一个错误.我cnx错了吗?

use*_*627 7

你需要安装包pypyodbc

!pip install pypyodbc
Run Code Online (Sandbox Code Playgroud)

然后,您可以按如下方式导入它:

import pypyodbc as podbc
Run Code Online (Sandbox Code Playgroud)

您现在可以创建连接:

conn = podbc.connect("Driver={SQL Server};Server=<YourServer>;Database=<YourDatabase>;uid=<YourUserName>;pwd=<YourPassword>"
Run Code Online (Sandbox Code Playgroud)

最后,您按如下方式获取数据:

cursor = conn.cursor()
sql = "SELECT * FROM WHdb.dbo.vw_smallTable"
cursor.execute(sql)
data = cursor.fetchone()
while data:
    print(str(data[0]) + ", " + ... + ", " + str(data[n-1]))
    data = cursor.fetchone()
conn.close()
Run Code Online (Sandbox Code Playgroud)

请注意,n =表中的列数.