python进阶学习(三)

 

 本节经SQLite了解数据库操作


 

数据库支持

 

 

 

使用简易的纯文本只能促成有退限的效能,所欲引入数据库,完成还强的功效,本节使用的简便数据库SQLite 。

 

SQLite 和PySQLite

 

sqlite是颇出名的开源嵌入式数据库软件,它好坐至其它程序中应用,并且提供SQL接口用来询问,非常有益。它的官方站点为http://www.sqlite.org。

 而pysqlite 则是一个 sqlite 为 python 提供的 api 接口,它吃总体对 sqlite 的操作都变得稀简单

 

在python2.5版本就晚,SQLite的优势在她的一个封装(PySQLite)已经被概括在专业库内,所以我们好一直以。

 

 

 

入门操作

 

得拿SQLite作为名吧sqlite3的模块导入。之后虽得创造一个暨数据库文件的接连—-如果文件未设有即会见叫创造—-通过提供一个文本称:

 

>>> import sqlite3
>>> conn = sqlite3.connect('somedatabase.db') # 创建数据库
>>>cu = conn.cursor()   #能获得连接的游标

#创建数据表
>>> cu.execute("""create table catalog (
    id integer primary key,
    pid integer,
    name varchar(10) UNIQUE
   )""")


#插入两条数据
>>> cu.execute("insert into catalog values(0,0,'name1')")
>>> cu.execute("insert into catalog values(1,0,'name2')")
>>> conn.commit()


#选择(select)
>>> cu.execute("select * from catalog")
>>> cu.fetchall()  
[(0, 0, 'name1'), (1, 0, 'name2')]
>>> cu.execute("select * from catalog where id = 1")
>>> cu.fetchall()
[(1, 0, 'name2')]


#修改(update)
>>> cu.execute(“update catalog set name=’name2′ where id = 0″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchone()
(0, 0, ‘name2′)


#删除(delete)
>>> cu.execute(“delete from catalog where id = 1″)
>>> cx.commit()
>>> cu.execute(“select * from catalog”)
>>> cu.fetchall()
[(0, 0, 'name2')]

 

 

 

连接

以使基础数据库系统,首先须连接受她,这个时候需要采取所有名称的connect函数,该函数有多单参数,而实际用哪个参数取决于数据库。

connect函数的常用参数:

 

connect函数返回连接对象。这个目标表示即同数据库的对话。连接对象支持的办法如下;

接连对象方法:

 

commit 方法总是可用的,但若数据库不支持工作,它便从不其余企图。如果关闭了连续而尚时有发生不提交的事情,它们会隐式地回滚—但是只有以数据库支持持回滚的时刻才可以。

 

rollback 方法恐怕不可用,因为不是享有的数据库都支持工作(事务是千篇一律层层动作)。如果可用,那么即使好“撤销”所有非提交的政工。

 

cursor 方法将我们引入另外一个主题:游标对象。通过游标扫行SQL 查询并检查结果。游标连接支持更多的计,而且也许于次中再次好用。

 

 

游标:

cu = conn.cursor()

会博得连续的游标,这个游标可以用来施行SQL查询。

 

 conn.commit()  

完插入并且做出一点更改后保已经进展了付出,这样才堪以这些修改真正地保留到文件中。

 

 

游标对象方法:

 

游标对象特性:

 

 

cu.fetchone()

 

fetchall()返回结果集中之全多少,结果吗一个tuple的列表。每个tuple元素是依建表的字段顺序排列。注意,游标是生状态的,它可以记下时早就获取到结果的第几单记录了,因此,一般你一味可以遍历结果集一浅。在面的情形下,如果尽fetchone()会回吗空。这同接触于测试时需留意。

 

conn.close()

得以历次修改数据库后还进展提交,而无是才以预备关门才提交,准备关门数经常,使用close 方法。

 

 


参考:

pysqlite 简明教程:http://blog.donews.com/limodou/archive/2004/07/05/37895.aspx

 

SQLite转码问题:http://blog.sina.com.cn/s/blog_68013e850100w66d.html

 

网站地图xml地图