Python SQLITE数据库是一款很是小巧的嵌入式开源数据库软件,也就是说没有独立的维护进程,全部的维护都来自于程序自己。它使用一个文件存储整个数据库,操 做十分方便。它的最大优势是使用方便,功能相比于其它大型数据库来讲,确实有些差距。可是性能表现上,SQLITE并不逊色。麻雀虽小,五脏俱全, sqlite 实现了多数 sql-92 的标准,好比说 transaction 、 trigger 和复杂的查询等。python
python的数据库模块有统一的接口标准,因此数据库操做都有统一的模式,基本上都是下面几步(假设数据库模块名为db):sql
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数据库
下面让咱们一步步走进Python中的SQLite吧。函数
一,Python SQLITE数据库导入模块:性能
import sqlite3 fetch
二,建立数据库/打开数据库:spa
cx = sqlite3.connect("E:/test.db") 其实咱们不须要显式的建立一个sqlite数据库,在调用connect函数的时候,指定库名称,若是指定的数据库存在就直接打开这个数据库,若是不存在就新建立一个再打开。这一点应用很好理解。设计
三,数据库链接对象:sqlite
打开数据库时返回的对象cx就是一个数据库链接对象,它能够有如下操做:对象
commit()--事务提交 rollback()--事务回滚 close()--关闭一个数据库链接 cursor()--建立一个游标
四,Python SQLITE数据库游标的使用:
游标提供了一种对从表中检索出的数据进行操做的灵活手段,就本质而言,游标其实是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标老是与一条SQL 选择语句相关联。由于游标由结果集(能够是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。若是曾经用 C 语言写过对文件进行处理的程序,那么游标就像您打开文件所获得的文件句柄同样,只要文件打开成功, 该文件句柄就可表明该文件。对于游标而言,其道理是相同的。可见游标可以实现按与传统程序读取平面文件相似的方式处理来自基础表的结果集,从而把表中数据以平面文件的形式呈现给程序。
咱们知道关系数据库管理系统实质是面向集合的,在Sqlite中并无一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。所以咱们必须借助于游标来进行面向单条记录的数据处理。 因而可知,游标容许应用程序对查询语句select 返回的行结果集中每一行进行相同或不一样的操做,而不是一次对整个结果集进行同一种操做;它还提供对基于游标位置而对表中数据进行删除或更新的能力;正是游 标把做为面向集合的数据库管理系统和面向行的程序设计二者联系起来,使两个数据处理方式可以进行沟通。
下面着重阐述cursor游标的使用。其实,全部sql语句的执行都要在游标对象下进行。
首先,定义一个游标:
cu = cx.cursor() 这样定义了一个游标。游标对象有如下的操做:
execute()--执行sql语句 executemany--执行多条sql语句 close()--关闭游标 fetchone()--从结果中取一条记录,并将游标指向下一条记录 fetchmany()--从结果中取多条记录 fetchall()--从结果中取出全部记录 scroll()--游标滚动 下面就使用Python SQLITE数据库中游标对咱们上面创建的数据库做一些操做吧:
1,建表:
cu.execute('create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE)') 上面语句建立了一个叫catalog的表,它有一个主键id,一个pid,和一个name,name是不能够重复的。
2,插入数据:
cu.execute("insert into catalog values(0, 0, 'name1')") cu.execute("insert into catalog values(1, 0, 'hello')") 简单的插入两行数据,不过须要提醒的是,只有提交了以后,才能生效.咱们使用数据库链接对象cx来进行提交commit和回滚rollback操做.
cx.commit()
3,查询:
cu.execute("select * from catalog") 要提取查询到的数据,使用游标的fetch***函数,如:
print cu.fetchall() 返回结果以下:
[(0, 0, u'name1'), (1, 0, u'hello')] 若是咱们使用cu.fetchone(),则首先返回列表中的第一项,再次使用,则返回第二项,依次下去.
4,修改:
cu.execute("update catalog set name='name2' where id = 0")
cx.commit() 注意,修改数据之后提交
5,删除:cu.execute("delete from catalog where id = 1") cx.commit() 以上简单的操做反应的Python SQLITE数据库操做的基本要点,这里点到为止.而后,SQLite的强大,并不只限于此,其对SQL高级特性的支持及其小巧灵活的特色,使得 SQLite在众多领域受到开发者的青睐.