一、DB-API概述
python支持很多不同的数据库。由于不同的卖家服务器导致和数据库通信的网络协议各有不同。在python的早期版本中,每一种数据库都带有自己的python模块,所有这些模块以不同的方式工作,并提供不同的函数。这种方法不便于编写能够在多种数据库服务器类型中运行的代码,于是DB-
API库函数产生。在DB-API中,所有连接数据库的模块即便是底层网络协议不同,也会提供一个共同的接口。这一点和JAVA中的JDBC和ODBC类似。
DB-
API下载地址:http://wiki.python.org/moin/DatabaseProgramming,目前版本是2.0,支持数据库包括IBM
DB2、Firebird (and Interbase) 、Informix、Ingres、MySQL、Oracle 、PostgreSQL 、SAP DB
(also known as "MaxDB") 、Microsoft SQL Server 、Sybase 等。
二、数据库连接
1、PostgreSQL
有几个模块可以完成python与PostgreSQL的联接,这里主要介绍使用psycopg。
下载地址是:http://initd.org/psycopg/download/。如果没有PostgreSQL,可以从以下地址下载:http://www.postgresql.org/。(关于PostgreSQL的安装等更加详细的介绍,可以见http://wenku.baidu.com/view/8e32d10c6c85ec3a87c2c500.html。)连接PostgreSQL数据库:
复制代码 代码如下:
import psycopg2
print "connecting to test"##test为数据库名
dbh=psycopg2.connect('dbname=test user=postgres')
print "connection successful"
2、MySQL
对于MySQL,python的接口是已知的MySQLdb或者MySQL- Python,下载地址:http://sourceforge.net/projects/mysql- python/。与PostgreSQL不同的是,MySQLdb connect()函数可以带各种参数,具体如下:
参数 </td> |
说明 </td></tr> | ||||||||||
user </td> |
用户名,默认为当前登录用户。 </td></tr> | ||||||||||
passwd </td> |
用户密码,没有默认的。 </td></tr> | ||||||||||
db </td> |
连接的数据库名。 </td></tr> | ||||||||||
host </td> |
数据库主机名。 </td></tr> | ||||||||||
port </td> |
TCP端口,默认是3306。 </td></tr></table> 复制代码 代码如下: import MySQLdb 三、简单操作(以PostgreSQL为例) 复制代码 代码如下: import psycopg2 1、事务 多数数据库支持事务,事务可以将多条对数据库的改动放在一条命令中。在上面的例子中,当未曾执行commit()命令时,以上对数据库的操作均不会生效。另外还有一个函数rollback(),这个函数可以有效的放弃上一次执行commit()或者rollback()之后的改动。这个函数在发现错误,并想放弃已经发出的事务时,非常有效。对于不支持事务的数据库,改变会立刻执行,commit()什么也不做,但rollback()会报错。 2、效率 执行事件的性能很大程序上取决于不同的服务器,一般来说,在每个单独的命令后都提交是更新数据库最慢的方法,但如果一次提交很大数据又会使服务器产生buffer溢出。因此,应该合理处理提交的数量。 四、参数风格 复制代码 代码如下:
pyformat这一结果可以看出,当前支持pyformat格式。 针对DB-API说明书,以使用频度由小变大的顺序介绍:
|