python模块之 sqlite数据库
2010-12-09 21:52
转 载于 http://www.sqlite.com.cn/MySqlite/11/498.Html
sqlite 是 非 常 著 名 的开 源 嵌 入式 数 据 库软 件 ,它可以嵌 入 到 其 他程 序中 使用 ,并且 提供 SQL
接 口 用 来 查询 , 非 常方 便 。 它的 官 方 站点 为 http://www.sqlite.org。
windows 版 本的 python2.5 已 经自 带 了 sqlite3 这 个 模 块 , 是可 以 直 接使 用 的 。
python 的 数据 库 模 块有 统 一 的接 口 标 准,所 以 数据 库操 作 都 有 统一 的 模 式, 基 本 上都 是 下
面 几 步 ( 假设 数 据 库模 块 名 为 db) :
1. 用 db.connect 创 建 数 据 库连 接 , 假设 连 接对 象 为 conn
2. 如 果 该数 据库 操作 不 需 要返 回 结 果,就直接 用 conn.execute 查询 ,根据 数 据库事 务 隔离
级 别 的 不 同, 可 能 修改 数 据 库需 要 conn.commit
3. 如 果 需要 返回 查询 结 果 则用 conn.cursor 创 建 游 标对 象 cur, 通 过 cur.execute 查 询 数据
库 , 用 cur.fetchall/cur.fetchone/cur.fetchmany 返 回查 询 结 果 。根 据数 据库 事 务 隔 离 级别
的 不 同 , 可能 修 改 数据 库 需 要 conn.commit
4. 关 闭 cur, conn
sqlite3 模 块 也 不 例 外, 看 看 下面 的 例子
#-*- encoding:gb2312 -*-
import sqlite3
conn = sqlite3.connect("D:\aaa.db")
conn.isolation_level = None #这 个 就 是 事 务 隔离 级 别,默 认 是 需 要自 己 commit 才 能 修改 数
据 库 , 置 为 None 则自 动 每次 修 改 都提 交 ,否 则 为 ""
# 下 面 就是 创 建 一个 表
conn.execute("create table if not exists t1(id integer primary key autoincrement, name v
archar(128), info varchar(128))")
# 插 入 数据
conn.execute("insert into t1(name,info) values ('zhaowei', 'only a test')")
# 如 果 隔离 级 别 不是 自 动 提交 就 需 要手 动 执 行 commit
conn.commit()
# 获 取 到游 标 对 象
cur = conn.cursor()
# 用 游 标来 查 询 就可 以 获 取到 结 果
cur.execute("select * from t1")
# 获 取 所有 结 果
res = cur.fetchall()
print 'row:', cur.rowcount
# cur.description 是 对这 个 表 结构 的 描述
print 'desc', cur.description
# 用 fetchall 返回 的 结 果是 一 个 二维的 列 表