首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

14.2  Python中的SQL

Python,自然地支持很多不同的数据库。然而,用于和数据库通信的网络协议却是因不同的卖家服务器而不同。在Python的早期版本中,每一种数据库都带有自己的Python模块,所有这些模块以不同的方式工作,并提供不同的函数。

大多数的Python程序员不喜欢这样,因为这不便于编写能在多种数据库服务器类型中运行的代码。因此就产生了一个特殊的,被称为DB-API的库函数。所有连接数据库的模块即便底层网络协议不同,也会提供一个共同的接口。这和Java语言的JDBC和ODBC类似。

当前的DB-API版本是2.0。您可以在www.python.org/topics/database/这个网址找到它的定义以及由它引出的各种Python数据库模块。在编写本书的过程中,下列数据库都支持DB-API 2.0:

l  DB/2

l  Gadfly(和DB-API兼容性还不清楚)

l  Ingres 和 OpenIngres

l  JDBC(驱动转换层;当运行在Java中时,可以通过JDBC来访问任何数据库)

l  MySQL 3.22.19 及以上版本

l  ODBC(驱动转换层;当运行在一个安装了ODBC的系统中时,可以通过ODBC来访问任何数据库)

l  Oracle

l  PostgreSQL

l  SAP DB

l  Sybase(主要兼容DB-API 2.0)

l  ThinkSQL

如果您的数据库并不在这个列表中,您也许也能使用它。这个列表只提到了那些和DB-API 2.0兼容的模块;有些模块事实上并没有得到维护,或者是只支持1.0版本。有些旧的模块可能比DB-API都早。

如果不存在适合您数据库的Python模块,您还可以试试JDBC和ODBC驱动转换层。例如:如果您的数据库提供JDBC驱动,您还是可以用Python编写程序,它们可以在Jython解释器(一个不是用C语言而是Java编写的Python解释器)下运行。zxJDBC DB-API模块不是直接调用数据库服务器,而是JDBC。在这些所有的方法中,事实上,很难找到一个不能用Python实现通信的数据库服务器。zxJDBC 将在本章后面的部分详细介绍。在Python数据库主题指南站点还介绍了两个ODBC的接口。

在这个列表中还需要特殊说明的是Gadfly。它是一个纯粹用Python编写的小型SQL数据库。如果您不是很在意性能和可测量性,您就可以使用它。Gadfly的主页是http://gadfly.sourceforge.net/

为了简单明了,本章的例子(除了特殊声明)都是为PostgreSQL编写的。如果您正使用一个不同的数据库,需要稍微修改一下。

您或许会需要取得数据库驱动,因为默认情况下,Python并不带有。Python数据库主题指南站点提供了很多Python驱动的链接。您还可以检查您的操作系统是否带有预先建立的包。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论