如何通过Anaconda Jupyter连接Azure SQL数据库并导出数据
Jupyter Notebook连接Azure SQL并导出数据指南
一、Azure SQL连接方式说明
Azure SQL不会默认使用本地桌面凭据,你需要明确指定认证方式,以下是两种常用的连接方案:
1. Azure AD集成身份验证(使用本地桌面凭据)
如果你的本地Windows账号已被授权访问目标Azure SQL数据库,可以通过这种方式免密连接:
import pyodbc server = "你的服务器名称.database.windows.net" database = "你的数据库名称" # 注意:需要提前安装ODBC Driver 17 for SQL Server cnxn = pyodbc.connect( "DRIVER={ODBC Driver 17 for SQL Server};" f"SERVER={server};" f"DATABASE={database};" "Authentication=Active Directory Integrated;" )
2. SQL身份验证(用户名密码)
如果使用独立的SQL账号,需要显式传入用户名和密码:
import pyodbc server = "你的服务器名称.database.windows.net" database = "你的数据库名称" username = "SQL账号用户名" password = "SQL账号密码" cnxn = pyodbc.connect( "DRIVER={ODBC Driver 17 for SQL Server};" f"SERVER={server};" f"DATABASE={database};" f"UID={username};" f"PWD={password};" )
二、查询数据(转为DataFrame方便后续导出)
推荐使用pandas处理查询结果,便于快速导出:
import pandas as pd # 创建游标执行查询 cursor = cnxn.cursor() cursor.execute("SELECT * FROM 你的目标表名") # 将查询结果转为DataFrame df = pd.DataFrame( cursor.fetchall(), columns=[desc[0] for desc in cursor.description] )
三、导出数据到CSV/Excel
1. 导出到CSV
# index=False表示不导出索引列,encoding='utf-8-sig'避免中文乱码 df.to_csv("导出文件路径.csv", index=False, encoding="utf-8-sig")
2. 导出到Excel
先安装依赖库openpyxl:
pip install openpyxl
再执行导出:
df.to_excel("导出文件路径.xlsx", index=False, engine="openpyxl")
注意事项
- 必须安装ODBC Driver 17 for SQL Server,否则连接会失败。
- 确保Azure SQL服务器的防火墙规则已允许你的本地IP地址访问。
- 使用AD集成身份验证时,需确认你的本地账号已被授予数据库的访问权限(例如
db_datareader角色)。
内容的提问来源于stack exchange,提问作者Trend
相关产品推荐
相关产品推荐

