Python可以方便地支持关系型数据库如DB2、InFormix、MySQL、MsSQL、Access、Sybase,以及非关系型数据库如XML、MetaKit、Durus等的访问操作,支持嵌入式数据库SQLite、ThinkSQL,支持数据仓库系统IBM Netezza等。
连接对象和游标对象
1.连接对象
连接对象(Connection Object)主要用来管理数据库连接及关闭连接的对象。通过使用函数connect()获取连接对象,该函数具有多个参数,并且根据不同的数据库类型而有所不同。比如,需要访问SQLite和MsSQL数据库,则需要分别下载SQLite数据库模块和MsSQL数据库模块。connect()函数的常用参数包括数据源名称、用户名称、用户密码、主机名及数据库名称等。该函数的基本参数如下。
· host:主机名。
· user:用户名称。
· password:用户密码。
· database:数据库名称。
此外,在建立数据库连接时,其他的函数还有如下几个。
· close():关闭数据库连接对象。
· commit():提交事务。
· rollback():回滚事务。
· cursor():在连接对象上创建游标对象。
例如,可以使用以下语句连接MySQL数据库。
2.游标对象
游标是处理数据的一种方法,可以方便地查看和处理结果集中的数据,并且提供了向前、向后浏览数据的能力,类似于C语言中的指针,可以定位到结果集的任何位置。Python中的游标也基于这种思想,并对其进行了扩展,不仅可以用于操作数据结果集,而且可以用于向数据库提交查询语句和调用存储过程。
使用cursor()函数获取游标对象,主要包括如下方法。
· close():关闭此游标对象。
· fetchone():得到结果集的下一行。
· fetchmany([size=cursor.arraysize]):得到结果集的下几行。
· fetchall():得到结果集中剩下的所有行。
· excute(sql[,args]):执行一个数据库查询或命令。
· excutemany(sql,args):执行多个数据库查询或命令。
· callproc(procname,args):调用存储过程。
· arraysize:获取fetchmany()结果集行数,默认为1。
· description:返回当前结果集的列名信息。
· rowcount:返回查询结果行数,没有结果集时用-1标识。
· nextset:跳到下一个结果集。
说明:数据库编程接口和API对大多数数据库操作是可用的,但应该针对所操作的数据库查看其相关的帮助文档。
3.连接数据库
在操作数据库之前,首先需要建立数据库连接对象。在前面已经创建了student数据库,下面通过connect()方法连接该数据库。
4.操作数据表
针对MySQL数据库操作,主要学习对Mstudent数据表的增、删、改、查操作,这里使用execute()方法进行操作。