Python数据库API
Python数据库API是一种连接到SQL数据库的标准化方式
Python支持连接各种数据库,比如说MySQ和SQLite, MongoDB和Redis。
各种数据库的基础功能大都相同,那我们使用其中一个操作数据库的程序,应该很容易的将其修改,然后再将其使用到另一个数据库上。但是每个数据库都有相应的Python模块,它们的接口也是不同的,为了解决这个问题日,开发了一个标准数据库API(DB API),DB API是关系数据库的公共接口规范。
DB API是在PEP249中提供的
PEPs(Python Enhancement Proposals)
PEP 249 – Python Database API Specification v2.0
这篇文章主要说一下通用性的基础规范,在开发过程中应当注意的地方,博客内容包括如下几个方面:
文章目录
连接和游标
要使用底层的数据库系统,我们首先做的就是要连接到它。
连接数据库使用函数connect,根据不同的数据库选择不同的参数(推荐将这些参数作为关键字参数,并按照下表的顺序排列,这些参数都应该是字符串)。
函数connect的常用参数如下表:
参数名 | 描述 | 是否可选 |
---|---|---|
dsn | 数据源名称,具体含义随数据库而异 | 否 |
user | 用户名 | 是 |
password | 用户密码 | 是 |
host | 主机名 | 是 |
database | 数据库名称 | 是 |
示例:连接SQLite的名为jobs.db的数据库
import sqlite3
conn = sqlite3.connect('job.db')
curs = conn.cursor()
curs.execute(
'''
CREATE TABLE job(
id INTEGER primary key AUTOINCREMENT,
salary FLOAT,
city TEXT,
company_name TEXT,
address TEXT,
)
'''
)
conn.commit()
conn.close()
函数connect返回一个连接对象(conn),连接对象表示当前到数据库(jobs.db)的会话。连接对象支持的方法:
方法名 | 描述 |
---|---|
cursor() | 返回连接的游标对象 |
commit() | 提交当前未提交的事务(数据库支持事务,会执行功能,如果数据库不支持事务,什么都不会做) |
rollback() | 回滚未提交的事务(这个方法是否可用取决于数据库是否支持事务,不支持事务的话可能不能使用该方法) |
close() | 关闭连接对象。关闭之后,连接对象及其游标将不可用 |
下面说一下游标对象,连接对象的cursor()方法返回连接的游标对象,我们使用游标对象执行SQL语句(SQL查询并查看查询结果,创建表,删除表等操作)。
游标对象的属性如下表:
属性名 | 描述 |
---|---|
description | 由结果咧描述组成的序列(只读) |
rowcount | 结果包含的行数(只读) |
arraysize | fetchmany返回的函数,默认为1,可修改 |
游标对象的方法如下表:
方法名 | 描 |
---|