前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操作SQL 服务器

Python操作SQL 服务器

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

每个人都使用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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. pyodbc
  • 2. 连接
  • 3. 执行查询
  • 4. 提取数据
  • 5. 在SQL中变更数据
  • 6. 下一步
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com