示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载本指南以 Microsoft sql-server-samples 仓库中的官方 Windows 示例samples/tutorials/python/pyodbc/windows/README.md为主体讲解如何在 Windows 客户端上使用pyodbc连接器连接 Azure SQL Database 或 SQL Server 2016完成基础的 SELECT 与 INSERT 操作。读完本文后你将掌握 pyodbc 连接字符串的完整写法、示例代码的执行流程以及驱动安装、数据准备等落地环节的关键细节可以直接把示例跑通并迁移到自己的业务代码中。关于本示例该示例来自仓库中的 Python 示例集官方定位如下适用对象SQL Server 2016或更高版本、Azure SQL Database、Azure SQL Data Warehouse现并入 Azure Synapse、Parallel Data Warehouse工作负载CRUD增删改查编程语言Python作者Meet Bhagdev示例本身非常精简——只包含一个文件 sample_python_windows.py但它完整演示了 pyodbc 连接数据库的「三板斧」构造连接字符串、建立连接与游标、执行 SQL 并逐行读取结果。这是所有 Python SQL Server 应用的最小可运行骨架。开始之前软硬件前置条件在 Windows 客户端上运行本示例需要依次满足以下前置条件。软件前置条件SQL Server 2016或更高版本或一个 Azure SQL Database。这是连接的目标端示例代码中的连接信息需要指向它。Python。原文档指向 Python 2.7.6 版本。需要特别说明的是示例源码使用的是Python 2 语法例如print row[0]是语句而非函数调用如果你使用 Python 3 运行需要将源码中的print语句改写为print(row[0])形式。实际生产中建议使用较新的 Python 3 版本并同步调整语法。Microsoft ODBC Driver for SQL ServerWindows 版11 或 13。这是 pyodbc 与 SQL Server 之间通信的底层驱动需从微软官方渠道下载并安装。示例的连接字符串中指定的驱动名称为ODBC Driver 13 for SQL Server安装时必须保证系统注册的驱动名与连接字符串中的名称完全一致连接字符串中的驱动名需要去掉空格。pyodbc 库。在终端中执行pip install pyodbcpyodbc 是 Python 生态中最常用的 ODBC 数据库连接库它把 Python DB-API 接口映射到 ODBC 驱动之上因此只要系统里装了对应的 ODBC 驱动同一套代码就可以连接 SQL Server、Azure SQL Database 等多种数据源。Azure 前置条件准备 AdventureWorks 数据库示例中的 SELECT 与 INSERT 语句都依赖AdventureWorks示例数据库具体是SalesLT.Product和SalesLT.Product表所在的 SalesLT schema。仓库本身即为 AdventureWorks 提供了完整的安装资源OLTP 安装脚本与全部 CSV 数据位于 samples/databases/adventure-works/oltp-install-script/主脚本为 instawdb.sql数据仓库版脚本位于>import pyodbc server tcp:myserver.database.windows.net database mydb username myusername password mypassword #Connection String cnxn pyodbc.connect(DRIVER{ODBC Driver 13 for SQL Server};SERVERserver;DATABASEdatabase;UIDusername;PWD password)各参数含义如下参数示例值说明servertcp:myserver.database.windows.net目标实例地址。Azure SQL Database 的地址形如server.database.windows.nettcp:前缀用于明确走 TCP 协议连接本地 SQL Server 时则为localhost、localhost\SQLEXPRESS或主机名/实例名databasemydb目标数据库名示例中为 AdventureWorksusername/UIDmyusername登录名Azure SQL Database 通常使用userserver的格式password/PWDmypassword登录密码DRIVER{ODBC Driver 13 for SQL Server}必须与系统已安装 ODBC 驱动注册名一致花括号用于包裹含空格的驱动名pyodbc.connect()成功后会返回一个连接对象cnxn再通过cnxn.cursor()取得游标cursor后续所有 SQL 都由该游标执行。这段代码清晰地展示了 pyodbc 连接字符串的关键点所有键值对用分号连接键名不区分大小写驱动名必须带花括号。运行示例运行步骤如下用文本编辑器打开 sample_python_windows.py将server、database、username、password四个变量替换为你自己的真实值在终端中进入示例所在目录并执行python sample_python_windows.py观察输出程序会先打印SELECT version;返回的 SQL Server 版本信息再打印 INSERT 语句返回的新插入记录的 ProductID。示例代码逐段解析示例共包含三个逻辑步骤下面结合源码逐段解读。第一步SELECT 查询版本信息cursor.execute(SELECT version;) row cursor.fetchone() while row: print row[0] row cursor.fetchone()cursor.execute()执行查询但不立即获取结果cursor.fetchone()每次取回结果集的一行元组while row:循环遍历所有返回行row[0]是元组的第一个字段——这里正是version返回的版本字符串。这个模式execute→fetchone→while循环是 pyodbc 读取结果集的最基础写法几乎所有 SELECT 场景都可以套用。第二步INSERT 并回读新主键cursor.execute(INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES (SQL Server Express New 20, SQLEXPRESS New 20, 0, 0, CURRENT_TIMESTAMP )) row cursor.fetchone() while row: print Inserted Product key is str(row[0]) row cursor.fetchone()INSERT 语句向SalesLT.Product表插入一条新产品记录字段覆盖Name、ProductNumber、StandardCost、ListPrice和SellStartDate用CURRENT_TIMESTAMP取当前时间关键点在于OUTPUT INSERTED.ProductID子句它让 INSERT 语句同时把新生成的主键值作为结果集返回从而可以直接用fetchone()取到插入行的 ProductID程序随后打印Inserted Product key is id验证插入成功。这种「插入后立即取回主键」的做法避免了再次查询是写入类业务中的常用技巧。注意示例只做了 INSERT 而没有调用cnxn.commit()——如果你希望插入的数据真正落库需要在实践中显式提交事务或在连接字符串中配置自动提交。第三步遍历结果两段 SQL 都使用了相同的while row:读取循环。需要留意的是示例源码运行于 Python 2 环境print均为语句形式若迁移到 Python 3请改为print(row[0])、print(Inserted Product key is str(row[0]))。与 Linux 版本的对照仓库同时提供了 Ubuntu Linux 版本samples/tutorials/python/pyodbc/linux/README.md其示例代码 sample_python_linux.py 与 Windows 版几乎一致差异主要体现在安装方式不同Linux 版通过apt-get安装python-dev、python-pipODBC 驱动通过官方安装脚本安装pyodbc 用sudo -H pip install pyodbc连接代码相同两个平台共用同一套 pyodbc API 与连接字符串结构这正是 pyodbc 跨平台能力的最好佐证。如果你在 macOS 或 Linux 上开发可以参照 Python 示例集 中按操作系统分目录组织的各版本仓库还提供了使用pymssql驱动连接 SQL Server 的同类示例如 samples/tutorials/python/pymssql/linux/README.md可作为连接器选型时的对照参考。注意事项与限制Python 版本示例源码是 Python 2 语法运行时请按实际解释器版本调整print等语法ODBC 驱动版本连接字符串中的驱动名ODBC Driver 13 for SQL Server必须与系统安装的驱动注册名一致否则会抛出 IM002: Driver not found 类错误安装新版驱动后需同步修改此名称SQL 版本依赖SalesLT.Product表存在于 AdventureWorks 的 SalesLT schema插入语句依赖该表结构与已有数据请务必先用仓库脚本准备数据库事务提交示例未显式commit()在实际写入业务中应根据需要提交或回滚事务凭据安全示例把密码硬编码在源码中仅供学习演示生产环境应使用环境变量、密钥管理服务或受支持的认证方式替代。延伸阅读本示例完整源码sample_python_windows.py同连接器的 Ubuntu Linux 版本linux/README.mdPython 系列教程总览samples/tutorials/python/README.mdpymssql 驱动的对照示例samples/tutorials/python/pymssql/linux/README.mdAdventureWorks 示例数据库安装资源samples/databases/adventure-works/README.md免责声明本指南及所引用的脚本版权归 Microsoft Corporation 所有仅作为示例提供不属于任何 Azure 服务的一部分不受任何 SLA 或 Azure 相关协议保障脚本按「原样」提供不附带任何明示或暗示的担保。使用前请务必通读脚本内容。赞分享示例工程数据库教程后端【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址https://gitcode.com/gh_mirrors/sq/sql-server-samples点击查看免费下载相关推荐使用 pymssql 在 Ubuntu Linux 上连接 Azure SQL Database 与 SQL Server官方 Python 示例全解析使用 pymssql 在 Ubuntu Linux 上连接 Azure SQL Database 与 SQL Server官方 Python 示例全解析 本篇示例工程数据库教程后端从零到一使用command-line-args构建专业级CLI工具的完整教程从零到一使用command line args构建专业级CLI工具的完整教程 command line args是一个成熟、功能完善的命令行选项解析库能够帮示例工程数据库教程后端在 Ubuntu Linux 上用 pyodbc 连接 Azure SQL Databasesql-server-samples 官方 Python 教程实战在 Ubuntu Linux 上用 pyodbc 连接 Azure SQL Databasesql server samples 官方 Python 教程实战示例工程数据库教程后端上一篇如何在 Unity 里接上 RealSense 深度感知3 步上手指南下一篇raylib-games资源管理指南纹理、音频、字体加载与优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
PgHero Docker 部署指南:从安装、认证到多数据库与 Kubernetes 生产实践 数据库可观测性运维 【免费下载链接】pghero A performance dashboard for Postgres 项目地址: https://gitcode.com/gh_mirrors/pg/pghero 点击查看 免费下载 本文围绕 PgHero 官方 Docker 部署方式(guides/Docker.md)展开,覆盖… · 2026/9/25 7:07:14
PaddleSpeech 基于 GE2E 的 Speaker Encoder 训练与推理实践:从声纹验证到说话人嵌入提取 人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword… · 2026/9/25 7:07:08
Mage AI 数据集成指南:Amazon S3 目标端(Destination)配置、批量写入与源码原理详解 数据工程数据编排ETL任务调度批处理流处理数据集成后端 【免费下载链接】mage-ai 🧙 Build, run, and manage data pipelines for integrating and transforming data. 项目地址: https://gitcode.com/gh_mirrors/ma/mage-ai 点击查看 免费下载 Amazon … · 2026/9/25 7:07:08
19个免费PPT网站实测:在线编辑、模板下载与AI辅助工具推荐 1. 为什么我花了两周时间实测这19个PPT网站做PPT这件事,说大不大,说小也绝对不小。我在一家中型企业做品牌策划,平均每个月要出4到6份对外提案,加上内部汇报、季度复盘、培训课件,一年下来经手的PPT少说也有七八十份。… · 2026/9/25 7:33:26
Word尾注脚注管理全攻略:插入、删除与去横线技巧 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:33:26
Simulink建模效率:自动整理连线、显示数据类型与内容自适应 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:33:26
零成本监控回放方案:旧摄像头+树莓派+夸克网盘 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:33:20
彻底关闭OfficePlus:从加载项禁用、注册表修改到完全卸载的完整指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:33:20
SUMO交通仿真入门:从零搭建微观交通场景的核心指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 7:33:20
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37