当前位置: 首页 > news >正文

Python 连接 SQL 数据库 -pyodbc

文章目录

    • 使用 pyodbc 模块从 Python 代码连接到 SQL 数据库
      • 配置用于 pyodbc Python 开发的开发环境
      • 创建用于 pyodbc Python 开发的 SQL 数据库
      • 使用 pyodbc 连接到 SQL
        • 连接和查询数据
    • 推荐阅读

在 Windows、Linux 或 macOS 上使用 Python 连接到 SQL 数据库,有几个可用的 python SQL 模块。

  • Python SQL 模块 - pyodbc
  • Python SQL 模块 - pymssql

使用 pyodbc 模块从 Python 代码连接到 SQL 数据库

配置用于 pyodbc Python 开发的开发环境

需要提前部署好开发环境,才能使用 pyodbc Python for SQL Server 开发应用程序。

  • 已经安装了Python 3
  • 主机操作系统已安装相应的 ODBC 驱动程序
    驱动程序可以与 SQL Server Native Client 并行安装。
    调用 msodbcsql.msi 时,默认仅安装客户端组件。 客户端组件是一些文件,它们支持运行通过驱动程序开发的应用程序。 要安装 SDK 组件,请在命令行中指定 ADDLOCAL=ALL。
msiexec /i msodbcsql.msi ADDLOCAL=ALL
  • 安装 pyodbc 包
    安装 pyodbc 包:
 pip install pyodbc

使用 pip list 检查是否安装成功:

pip list

创建用于 pyodbc Python 开发的 SQL 数据库

使用 pyodbc 连接到 SQL

连接和查询数据

  1. 使用凭据连接到数据库。
  2. 创建名为 app.py 的新文件。
  3. 添加模块 docstring
"""
Connects to a SQL database using pyodbc
"""
  1. 导入 pyodbc 包
import pyodbc
  1. 为连接凭据创建变量
SERVER = '<server-address>'
DATABASE = '<database-name>'
USERNAME = '<username>'
PASSWORD = '<password>'
  1. 使用字符串内插创建连接字符串变量
connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
  1. 使用 pyodbc.connect 功能连接 SQL 数据库
conn = pyodbc.connect(connectionString)
  1. 使用 SQL 查询字符串执行查询
 SQL_QUERY = """
SELECT 
……
"""
  1. 使用 cursor.execute 从数据库查询中检索结果
cursor = conn.cursor()
cursor.execute(SQL_QUERY) 
  1. 使用 cursor.close 和 connection.close 关闭游标和连接
cursor.close()
conn.close()

Python的语法简洁易懂,这使得连接和操作数据库变得非常直观。连接到数据库能够方便地从数据库中提取数据并进行处理、分析、可视化等操作。

Python是跨平台的,你可以在各种操作系统上连接和操作数据库,无需考虑操作系统差异。所以我们可以通过python连接到各种不同类型的SQL数据库,如SQLite、MySQL、PostgreSQL、Oracle等。来达成更加容易的数据分析、Web可视化应用操作。Python拥有庞大的社区,你可以轻松地找到许多有关数据库连接和操作的资源、教程和帮助。

推荐阅读

SQL Server 数据库的备份
SQL数据库权限管理-10个数据库角色
SQL Server主流版本生命周期管理
SQL Server Management Studio语言更改中文简体
Ubuntu 20.04安装SQL Server
MS-SQL创建查询排序语句总结

http://www.lryc.cn/news/151087.html

相关文章:

  • Vue框架--Vue中的数据代理
  • 每日一题(链表中倒数第k个节点)
  • python如何求两list的公共区域
  • SpringMVC中文乱码(request或response)前后端处理
  • Redis面试题大全含答案
  • stable diffusion实践操作-提示词-整体环境
  • Spring Aop--通知注解
  • 说说CDN和负载均衡具体是怎么实现的
  • Leetcode107. 二叉树的层序遍历 II
  • 【广州华锐互动】VR党建多媒体互动展厅:随时随地开展党史教育
  • libdrm全解析三十九 —— 源码全解析(36)
  • 【Interaction交互模块】AngularJointDrive角度关节驱动
  • 菜鸟教程《Python 3 教程》笔记 EX 01:命令行参数
  • NLP(六十六)使用HuggingFace中的Trainer进行BERT模型微调
  • Rabbitmq消息积压问题如何解决以及如何进行限流
  • Lambda方法引用
  • TCP协议报文
  • C# 如何将使用的Dll嵌入到.exe应用程序中?
  • 【LeetCode】剑指 Offer Ⅱ 第5章:哈希表(6道题) -- Java Version
  • x86 汇编手册快速入门
  • WPF C# Binding绑定不上的解决情况
  • 【UE 材质】实现方形渐变、中心渐变材质
  • PHP旅游管理系统Dreamweaver开发mysql数据库web结构php编程计算机网页
  • java内存模型讨论及案例分析
  • 对战ChatGPT,创邻科技的Graph+AI会更胜一筹吗?
  • 9月2日,每日信息差
  • uni-app之android项目云打包
  • C++的智能指针和可变参数模板详解
  • Docker及常用数据库安装
  • 前端使用 JavaScript 检测用户是否在线的6种方法