前言:
此时我们对“python调用数据库数据”大致比较关怀,兄弟们都需要剖析一些“python调用数据库数据”的相关资讯。那么小编也在网上收集了一些关于“python调用数据库数据””的相关资讯,希望各位老铁们能喜欢,同学们快快来了解一下吧!Pandas是python语言中生成、导入、操控数据的工具包,而SQL语言是操作一般数据库常用的编程语言,那么如何在python编程环境中,使用SQL编成的代码,访问或操控一般数据库系统中的数据呢?pyodbc工具包就是为这种需求服务的,可以与当前常见的d数据管理系统建立连接,可以在python中像使用SQL查询那样访问数据。
pyodbc支持的数据管理系统Google BigQueryHive from Ubuntu / DebianMicrosoft AccessMicrosoft ExcelMicrosoft SQL Server from WindowsMicrosoft SQL Server from LinuxMicrosoft SQL Server from Red Hat or CentOSMicrosoft SQL Server from Red Hat 6 or CentOS-7Microsoft SQL Server from Mac OSXMySQLNetezzaOracle from Red Hat or CentOSPostgreSQLSQLiteTeradataVertica
本文简述用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 pyodbcconnection_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 pddata = 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调用数据库数据