sqlite数据库是非常小巧,非常适用于嵌入式软件开发,且占用资源非常低。
打开数据库时返回的对象是一个数据库连接对象,它可以有以下操作:
游标对象有以下的操作:
- commit()--事务提交
- rollback()--事务回滚
- close()--关闭一个数据库连接
- cursor()--创建一个游标
- execute()--执行sql语句
- executemany--执行多条sql语句
- close()--关闭游标
- fetchone()--从结果中取一条记录,并将游标指向下一条记录
- fetchmany()--从结果中取多条记录
- fetchall()--从结果中取出所有记录
- scroll()--游标滚动
In [1]: import sqlite3
In [2]: cx=sqlite3.connect('test.db')#如果不存在就指定一个
In [4]: cu=cx.cursor() #游标对象
In [5]: cu.execute("create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE,nickname text NULL)")#建表
Out[5]: <sqlite3.Cursor object at 0x1e817c0>
In [6]:
In [7]: for t in[(0,10,'abc','Yu'),(1,20,'cba','Xu')]:
...: cx.execute("insert into catalog values (?,?,?,?)", t)
...:
Out[7]: <sqlite3.Cursor object at 0x1ea6c90>
Out[7]: <sqlite3.Cursor object at 0x1ea6c38>
In [8]: cx.commit() #修改以后再提交
In [10]: cu.execute('select * from catalog') #查询
Out[11]: <sqlite3.Cursor object at 0x1e817c0>
In [12]: cu.fetchall()
Out[12]: [(0, 10, u'abc', u'Yu'), (1, 20, u'cba', u'Xu')]
In [13]: cu.execute("update catalog set name='Boy' where id = 0")
Out[13]: <sqlite3.Cursor object at 0x1e817c0>
In [14]: cx.commit()
In [15]: cu.execute("delete from catalog where id = 1")
Out[15]: <sqlite3.Cursor object at 0x1e817c0>
In [16]: cx.commit() #修改以后再提交
In [17]: cu.execute('select * from catalog')
Out[17]: <sqlite3.Cursor object at 0x1e817c0>
In [18]: cu.fetchall()
Out[18]: [(0, 10, u'Boy', u'Yu')]