网站首页 > 技术文章 正文
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结合起来使用,这极大的方便了操控常见的各种规模的数据库管理系统。
猜你喜欢
- 2025-01-01 Python的一个轻量级桌面GUI开发第三方库:Eel
- 2025-01-01 隐藏彩蛋:你知道python有一个内置的数据库吗?
- 2025-01-01 Python编程绝对初学者指南,一步一步的指南,有示例和实验练习
- 2025-01-01 python服务器socket编程
- 2025-01-01 「大数据」Hana入门
- 2025-01-01 搭建Python自带静态Web服务器
- 2025-01-01 python套接字socket编程搭建简易服务器,完成计算器实例
- 2025-01-01 Python快速搭建HTTP服务
- 2025-01-01 手把手教你使用Python轻松搞定发邮件
- 2025-01-01 软件测试工程师必会技术:Python带你上手WebSocket
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)