Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python操作SQL 服务器

Python操作SQL 服务器

作者头像
人工智能小咖
修改于 2020-06-15 02:53:54
修改于 2020-06-15 02:53:54
3.5K0
举报
文章被收录于专栏:人工智能小咖人工智能小咖

每个人都使用SQL和Python。SQL是数据库的实际标准,而Python是用于数据分析机器学习和网页开发的全明星顶级语言。想象一下,两者如果结合在了一起?

实际上,两者要结合在一起非常容易设置。可以快速利用Python的动态特性,控制和构建SQL查询。最好的部分是什么?设置完成后,无需执行任何操作。

这两种神奇的工具结合在一起后,自动化和效率都达到了新高度。

1. pyodbc

连接两种技术的桥梁是pyodbc,该库可以轻松访问ODBC数据库。

ODBC(ODBC是开放数据库连接的简称)是一种用于访问数据库的标准化应用程序编程接口(API),由90年代初的SQL Access组开发。

兼容的数据库管理系统(DBMS)包括:

  • IBM Db2
  • MS Access
  • MS SQL服务器
  • MySQL
  • Oracle

本文将使用MS SQL 服务器。在多数情况下,该服务器可以直接转移,与任何符合ODBC的数据库一起使用。唯一需要更改的是连接设置。

2. 连接

首先,要创建与SQL 服务器的连接,可以通过pyodbc.connect实现。在此函数中,还须传递连接字符串。

此连接字符串必须指定DBMS驱动程序、服务器、要连接的特定数据库以及连接设置。

因此,假设要连接到服务器UKXXX00123,45600和数据库DB01,为此需要使用SQL Server Native Client 11.0。

从内部连接,因而连接被信任(因此无需输入用户名和密码)。

cnxn_str = ("Driver={SQL Server Native Client 11.0};" "Server=UKXXX00123,45600;" "Database=DB01;" "Trusted_Connection=yes;")

现在,连接已初始化为:

cnxn = pyodbc.connect(cnxn_str)

如果不通过受信任的连接访问数据库,则需要输入通常用于通过SQL Server Management Studio(SSMS)访问服务器的用户名和密码。

例如,如果用户名是JoeBloggs,而密码是Password123,则应立即更改密码。

但是在更改这一可怕的密码之前,可以按照如下进行连接:

cnxn_str = ("Driver={SQL Server Native Client 11.0};" "Server=UKXXX00123,45600;" "Database=DB01;" "UID=JoeBloggs;" "PWD=Password123;")cnxn = pyodbc.connect(cnxn_str)

现在已连接到数据库,可以开始通过Python执行SQL查询。

3. 执行查询

SQL 服务器上运行的每个查询都包含游标初始化和查询执行。另外,如果要在服务器内部进行任何更改,还需要将这些更改提交到服务器(下一部分会有所介绍)。

初始化游标

cursor = cnxn.cursor()

现在,每当要执行查询时,都要使用此游标对象。

首先,从名为“customers”表中选择前1000行:

cursor.execute("SELECT TOP(1000) * FROM customers")

执行该操作,但这发生在服务器内部,实际上什么也没有返回到Python。因此,一起看看从SQL中提取的这些数据。

4. 提取数据

要从SQL中提取数据到Python中,需要使用pandas。Pandas提供了一个非常方便的函数read_sql,你可能已经猜到了,该函数可以从SQL读取数据。

read_sql需要查询和连接实例cnxn,如下所示:

data = pd.read_sql("SELECT TOP(1000) * FROM customers", cnxn)

这会返回到包含“customers”表中前1000行的数据框。

5. 在SQL中变更数据

现在,如果要变更SQL中的数据,需要在原始的初始化连接后添加另一步,执行查询过程。

在SQL中执行查询时,这些变更将保存在临时存在的空格中,而不是直接对数据进行更改。

为了让变更永久生效,必须提交变更。连接firstName和lastName列,创建fullName列。

cursor = cnxn.cursor()# first alter the table, adding a column cursor.execute("ALTER TABLE customer " + "ADD fullName VARCHAR(20)")# now update that column to contain firstName + lastNamecursor.execute("UPDATE customer " + "SET fullName = firstName + " " + lastName")

此时,fullName并不存在于数据库中。必须提交这些变更,让变更永久生效:

cnxn.commit()

6. 下一步

一旦执行了需要执行的任何操作任务,就可以把数据提取到Python中。或者,也可以将数据提取到Python中,在Python中进行操作。

无论采用哪种方法,一旦Python中有了数据,就可以做很多以前无法做到的事情。

也许需要执行一些日常报告,通常使用这些报告查询SQL 服务器中的最新数据,计算基本统计信息,然后通过电子邮件发送结果。

因此,通过简单的步骤,首先了解了如何通过使用SQL和Python的集成来快速建立更高效、自动化的工作流程。

这非常有用,不仅限于上述用例。

Python开辟了新路线,完成了以前仅使用SQL无法完成的操作。

很想听听你的意见、想法或用例!

感谢阅读

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
在使用Python连接SqlServer数据库并执行SQL查询时,有时会遇到“SQL错误(208):对象名‘string_split’无效”的报错。这个错误通常发生在尝试使用SQL Server中的STRING_SPLIT函数时,但该函数在当前的SQL Server版本中不存在或不可用。
屿小夏
2025/05/22
1230
安装pyodbc_编程python是什么
关于连接函数还有更多的选项,可以在pyodbc文档中的 connect funtion 和 ConnectionStrings查看更多的细节
全栈程序员站长
2022/08/03
1.3K0
Python 连接数据库的多种方法
Python是一种计算机程序设计语言,它是一种动态的、面向对象的脚本语言。它是一种跨平台的,可以运行在 Windows,Mac和 Linux/Unix系统上。
剑指工控
2021/11/09
2.1K0
Python 连接数据库的多种方法
python︱mysql数据库连接——pyodbc
execute执行的时候, 有很多SQL语句用单行来写并不是很方便,所以你也可以使用三引号的字符串来写:
悟乙己
2022/05/09
1.7K0
关于预编译SQL的面试题
面试官:“在数据库开发中,我们经常提到预编译SQL,你能详细解释一下这个概念吗?预编译SQL相比普通SQL有哪些优势?
小白的大数据之旅
2025/01/22
1120
关于预编译SQL的面试题
python连接SQL Server数据
工具:django-pyodbc-azure django-pyodbc-azure这个工具是目前据我所知最好用的django链接mssql的库 它有很多版本,需要配合你的Django版本,来下载。附上网址:https://pypi.org/project/django-pyodbc-azure/1.11.0.0/ 可以从历史版本里看看说明文档,看是否适合你的django版本,这里看1.11版本的说明文档。
py3study
2020/01/07
2.9K0
当Excel不够用的时候如何用Python救场?
Excel是很多公司非常流行的工具,数据分析师和数据科学家经常发现他们把它作为数据分析和可视化工具的一部分,但这并不总是最好的选择。
HuangWeiAI
2019/12/17
1.4K0
当Excel不够用的时候如何用Python救场?
干货!python与MySQL数据库的交互实战
如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个
朱小五
2020/01/16
1.9K0
干货!python与MySQL数据库的交互实战
Python与数据库的那些事
SQL(Structured Query Language)数据库,指关系型数据库。主要代表:SQL Server、Oracle、MySQL、PostgreSQL。
刘早起
2020/04/22
1.8K0
专栏:008:MySQLdb及其银行模拟转账
用理工科思维看待这个世界 系列爬虫专栏 崇尚的学习思维是:输入,输出平衡,且平衡点不断攀升。 曾经有大神告诫说:没事别瞎写文章;所以,很认真的写的是能力范围内的,看客要是看不懂,不是你的问题,问题在我,得持续输入,再输出。 今天的主题是:MySQLdb及其银行模拟转账 1:框架 序号 内容 说明 01 概念及其工具介绍 -- 02 SQL语句 -- 03 实例演示数据库操作 -- 04 银行转账操作演示 -- 05 参考及其说明 -- ---- 2:概念,工具介绍 MySQL
谢伟
2018/06/06
1K0
Python链接数据库,SQL语句查询这样操作!
Python链接数据库的方式有几种,但是原理都是一样的,总共可以分为两个步骤,第一步是与数据库建立链接,第二步执行sql查询语句,这篇将分别介绍如何与数据库链接以及如何进行sql语句查询。
Python数据科学
2019/05/14
5.1K0
Python - 操作 MySQL 数据库
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb
小菠萝测试笔记
2021/08/19
1.2K0
【python实操】年轻人,别用记事本保存数据了,试试数据库吧
为什么用数据库? 数据库比记事本强在哪? 答案很明显,你的文件很多时候都只能被一个人打开,不能被重复打开。当有几百万数据的时候,你如何去查询操作数据,速度上要快,看起来要清晰直接 数据库比我之前学的XML好在哪? XML表写索引的时候,很容易被中间断电就打断了,两个表对不上号了咋办? 安全和备份处理上数据库都有自己的考虑。
20岁爱吃必胜客
2023/03/25
1.1K0
【python实操】年轻人,别用记事本保存数据了,试试数据库吧
绕不过去的Python连接MySQL数据库
喜欢就点关注吧! 不管是机器学习、web开发或者爬虫,数据库都是绕不过去的。那么今天我们就来介绍Python如何Mysql数据库进行连接以及数据的交换。主要分为以下几个方面:什么是数据库?什么是MySQLdb?Python如何连接数据库?创建数据库数据库操作-CRUD什么是数据库数据库基本上是结构化数据的集合,通过数据库可以用各种方式轻松地检索,管理和访问数据。最简单的数据库形式之一是文本数据库。目前关系数据库是最流行的数据库系统,目前主流的关系数据库主要由以下几个:MySQLOracle Database
深度学习与Python
2019/07/15
6690
干货 | 利用Python操作mysql数据库
本文主要讲解如何利用python中的pymysql库来对mysql数据库进行操作。
朱小五
2020/11/23
3K0
干货 | 利用Python操作mysql数据库
PyMySQL 基本操作指南
在现代应用开发中,与数据库的高效交互是关键的一环。对于使用 Python 语言的开发者来说,PyMySQL 是一个非常实用的工具,它提供了一个简洁且功能强大的接口,用于连接和操作 MySQL 数据库。本章详细讲解了 PyMySQL 的基本操作步骤。
Heaven645
2024/08/11
8761
PyMySQL 基本操作指南
python接口自动化(三十八)-python操作mysql数据库(详解)
  现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库,会不会SQL等等,因此我们这篇文章来讲解如何用
北京-宏哥
2019/09/11
2.1K0
python接口自动化(三十八)-python操作mysql数据库(详解)
SQL游标(cursor)详细说明及内部循环使用示例
游标是处理结果集的一种机制,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。一般复杂的存储过程,都会有游标的出现,他的用处主要有:
摘繁华
2022/06/12
2.3K0
【Python】已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUn
已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\nDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\n’)
屿小夏
2024/07/01
7170
【Python】已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUn
Python访问数据库Mysql
安装MySQL驱动 由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。 Python3以后好像是不支持MySQLdb了,可以是用pymysql包,可以直接通过pymysql进行使用。 pip install pymysql MySQLdb 只适用于python2.x,发现pip装不上。它在py3的替代品是: import pymysql Mysql的事物 在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后
老七Linux
2018/05/09
6.3K0
相关推荐
【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档