Python中使用SQL语句访问SQL Server和Pandas数据
ccwgpt 2024-12-26 12:29 41 浏览 0 评论
Pandas是python语言中生成、导入、操控数据的工具包,而SQL语言是操作一般数据库常用的编程语言,那么如何在python编程环境中,使用SQL编成的代码,访问或操控一般数据库系统中的数据呢?pyodbc工具包就是为这种需求服务的,可以与当前常见的d数据管理系统建立连接,可以在python中像使用SQL查询那样访问数据。
pyodbc支持的数据管理系统
- Google BigQuery
- Hive from Ubuntu / Debian
- Microsoft Access
- Microsoft Excel
- Microsoft SQL Server from Windows
- Microsoft SQL Server from Linux
- Microsoft SQL Server from Red Hat or CentOS
- Microsoft SQL Server from Red Hat 6 or CentOS-7
- Microsoft SQL Server from Mac OSX
- MySQL
- Netezza
- Oracle from Red Hat or CentOS
- PostgreSQL
- SQLite
- Teradata
- Vertica
本文简述用pyodbc操作SQL Server数据库。
安装pyodbc工具包
pip install pyodbc
调用pyodbd工具包
在与SQL server数据库建立连接之前,先导入该工具包:
import pyodbc
与SQL server 建立连接
使用pyodbc.connect 函数建立与SQL Server的连接,该函数需要一个连接字符串作为参数,连接字符串的定义和声明可以分开。连接分为两种:可信任连接和不可信任连接,其中不可信任连接需要输入用户名及其密码。连接字符串的组成如以下实例:
- 可信任连接字符串
connection_string = ("Driver={SQL Server Native Client 11.0};"
"Server=Your_Server_Name;"
"Database=My_Database_Name;"
"Trusted_Connection=yes;")
- 不可信任连接字符串
connection_string = ("Driver={SQL Server Native Client 11.0};"
"Server=Your_Server_Name;"
"Database=My_Database_Name;"
"UID=Your_User_ID;"
"PWD=Your_Password;")
连接字符串内容包括:Server 名称、Database名称、User ID用户名和密码。
获取服务器名称
连接SQL Server数据库系统的界面如下图所示:
获得上述信息的方法有两种:一种是查看如上图这样的登录界面,另一种是使用SQL查询语句:
SELECT @@SERVERNAME
获取数据库名称
在MS SQL Server Management Studio系统中,可以在object Explorer(对象浏览器)菜单中查找数据库名称,如下图所示:
在图中的实例,数据库名称为:My_Database_Name
获取用户名-UID
在SQL Server 登陆界面中,可以看到用户名。
与SQL Server建立连接
使用pyodbc.connect函数完成连接初始化,代码如下:
connection = pyodbc.connect(connection_string)
在python中,连接SQL Server数据库,
import pyodbc
connection_string = ("Driver={SQL Server Native Client 11.0};"
"Server=Your_Server_Name;"
"Database=My_Database_Name;"
"UID=Your_User_ID;"
"PWD=Your_Password;")
connection = pyodbc.connect(connection_string)
在python中运行SQL查询语句
与SQL Sever建立连接之后,可以运行SQL查询语句,这需要定义一个游标(cursor)。例如,一个简单的查询,查看数据表State_Population的前10行数据,代码如下:
# 游标 Cursor 初始化
cursor = connection.cursor()
# 执行一个 SQL 查询
cursor.execute('SELECT TOP(10) * FROM State_Population')
运行上述语句后,并不能看到结果数据,可以另外把查询结果数据打印出来,代码如下:
for row in cursor:
print(row)
结果如下:
(AL, under18, 2012, 1117489.0)
(AL, total, 2012, 4817528.0)
(AL, under18, 2010, 1130966.0)
(AL, total, 2010, 4785570.0)
(AL, under18, 2011, 1125763.0)
(AL, total, 2011, 4801627.0)
(AL, total, 2009, 4757938.0)
(AL, under18, 2009, 1134192.0)
(AL, under18, 2013, 1111481.0)
(AL, total, 2013, 4833722.0)
在python中操作数据库中的表
Pandas是python中的保存数据的数据结构,其dataframe和SQL数据表相似。Pandas提供了以下读取SQL 数据的函数:
- pandas.read_sql_table() ,参数是数据表的名称
- pandas.read_sql_query(),参数为SQL查询语句字符串
- pandas.read_sql(),把前面两个参数打包在一起
再看看查看数据表State_Population的前10行数据,实例代码如下:
import pandas as pd
data = pd.read_sql('SELECT TOP(10) * FROM State_Population', connection)
data
把State_Population数据表中前10条记录导入到data,结果如下:
可以把查询语句作为字符串单独写,通过一个变量调用,如下:
query = 'SELECT * FROM STATE_AREAS WHERE [area (sq. mi)] > 100000'
area = pd.read_sql(query, connection)
area
结果如下图:
pyodbc把python和SQL结合起来使用,这极大的方便了操控常见的各种规模的数据库管理系统。
- 上一篇:前端难还是后端难?
- 下一篇:python oracle 连接池方式
相关推荐
- 自己动手写Android数据库框架_android开发数据库搭建
-
http://blog.csdn.net/feiduclear_up/article/details/50557590推荐理由关于Android数据库操作,由于每次都要自己写数据库操作,每次还得去...
- 谷歌开源大模型评测工具LMEval,打通谷歌、OpenAI、Anthropic
-
智东西编译|金碧辉编辑|程茜智东西5月28日消息,据科技媒体TheDecoder5月26日报道,当天,谷歌正式发布开源大模型评测框架LMEval,支持对GPT-4o、Claude3.7...
- 工信部:着力推动大模型算法、框架等基础性原创性的技术突破
-
工信部新闻发言人今日在发布会上表示,下一步,我们将坚持突出重点领域,大力推动制造业数字化转型,推动人工智能创新应用。主要从以下四个方面着力。一是夯实人工智能技术底座。通过科技创新重大项目,着力推动大模...
- 乒乓反复纠结“框架不稳定”的三个小误区
-
很多球友由于对框架的认知不清晰,往往会把“框架不稳定”当成一种心理负担,从而影响学球进度,其典型状态就是训练中有模有样,一旦进入实战,就像被捆住了手脚。通过训练和学习,结合“基本功打卡群”球友们交流发...
- 前AMD、英特尔显卡架构师Raja再战GPU,号称要全面重构堆栈
-
IT之家8月5日消息,知名GPU架构师拉贾科杜里(RajaKoduri)此前曾先后在AMD和英特尔的显卡部门担任要职。而在今日,由Raja创立的GPU软件与IP初创企...
- 三种必须掌握的嵌入式开发程序架构
-
前言在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。我相...
- 怪不得别人3秒就知道软考案例怎么做能50+
-
软考高级统一合格标准必须三科都达到45分,案例分析也一直是考生头疼的一门,但是掌握到得分点,案例能不能50+还不是你们说了算吗?今天就结合架构案例考点,分享实用的备考攻略~一、吃透考点,搭建知识框架从...
- UML统一建模常用图有哪些,各自的作用是什么?一篇文章彻底讲透
-
10万+爆款解析:9大UML图实战案例,小白也能秒懂!为什么需要UML?UML(统一建模语言)是软件开发的“蓝图”,用图形化语言描述系统结构、行为和交互,让复杂需求一目了然。它能:降低沟通成本避...
- 勒索软件转向云原生架构,直指备份基础设施
-
勒索软件组织和其他网络犯罪分子正越来越多地将目标对准基于云的备份系统,对久已确立的灾难恢复方法构成了挑战。谷歌安全研究人员在一份关于云安全威胁演变的报告中警告称,随着攻击者不断改进数据窃取、身份泄露和...
- ConceptDraw DIAGRAM:释放创意,绘就高效办公新未来
-
在当今数字化时代,可视化工具已成为提升工作效率和激发创意的关键。ConceptDrawDIAGRAM,作为一款世界顶级的商业绘图软件,凭借其强大的功能和用户友好的界面,正逐渐成为众多专业人士的首选绘...
- APP 制作界面设计教程:一步到位_app界面设计模板一套
-
想让APP界面设计高效落地,无需繁琐流程,掌握“框架搭建—细节填充—体验优化”三步法,即可一步到位完成专业级设计。黄金框架搭建是基础。采用“三三制布局”:将屏幕横向三等分,纵向保留三...
- MCP 的工作原理:关键组件_mcp部件
-
以下是MCP架构的关键组件:MCP主机:像ClaudeDesktop、GitHubCopilot或旅行助手这样的AI智能体,它们希望通过MCP协议访问工具、资源等。MCP主机会...
- 软件架构_软件架构师工资一般多少
-
软件架构师自身需要是程序员,并且必须一直坚持做一线程序员。软件架构应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。软件系统的架...
- 不知不觉将手机字体调大!老花眼是因为“老了吗”?
-
现在不管是联系、交友,还是购物,都离不开手机。中老年人使用手机的时间也在逐渐加长,刷抖音、看短视频、发朋友圈……看手机的同时,人们也不得不面对“视力危机”——老花眼,习惯眯眼看、凑近看、瞪眼看,不少人...
- 8000通用汉字学习系列讲座(第046讲)
-
[表声母字]加(续)[从声汉字]伽茄泇迦枷痂袈笳嘉驾架咖贺瘸(计14字)嘉[正音]标准音读jiā。[辨形]上下结构,十四画。会意形声字,从壴从加,加也表声。注:从壴,字义与鼓乐有关;从加,字义与...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 框架图模板 (59)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)