2.4.4 Python存储之SQLite

SQLite是一个小型的 关系型数据库,它最大的特点在于 不需要服务器零配置。前面的MySQL需要“安装”,安装之后,才运行起来,其实是已经有一个相应的服务器在跑着呢。而SQLite不需要这样,首先Python已经将相应的驱动模块作为标准库一部分了,只要安装了Python,就可以使用;另外,它也不需要服务器,可以类似操作文件那样来操作SQLite数据库文件。还有一点也不错,SQLite源代码不受版权限制。
SQLite也是一个关系型数据库,所以SQL语句也可以在里面使用。
与操作MySQL数据库类似,对于SQLite数据库也要通过以下几步。
建立连接对象。
连接对象方法:建立游标对象。
游标对象方法:执行sql语句。
1, 建立连接对象
由于SQLite数据库的驱动已经在Python里面了,所以,只要引用就可以直接使用。
>>> import sqlite3
>>> conn = sqlite3.connect ("D://test.txt")
>>> dir(conn) #查看内建方法
这样就得到了连接对象,在sqlite3.connect(" D://test.txt")语句中,如果已经有了那个数据库,就连接上它;如果没有,就新建一个。注意,这里的 路径可以随意指定。查看相应位置已经有了文件。
2, 游标对象
这个和MySQL一致
>>> cur = conn. cursor() #创建游标对象
>>> dir(cur) #查看内建函数
>>> create_tab = "create table users (id int,name text,age int)" #建表语句
>>> cur. execute (create_tab) #创建表
<sqlite3.Cursor object at 0x02AE8AE0>
>>> cur.execute('insert into users values (1,"zhangsan",18)') #插入数据
<sqlite3.Cursor object at 0x02AE8AE0>
>>> conn.commit() #提交
>>> cur.close() 关闭游标
>>> conn.close() #关闭连接
查询结果
>>> conn = sqlite3.connect ("D://test.txt")
>>> cur = conn.cursor()
>>> cur. execute ('select * from users')
<sqlite3.Cursor object at 0x031A3720>
>>> print cur.fetchall() #查询所有结果
[(1, u'zhangsan', 18)]
批量插入
>>> sql = [(2,"lisi",20),(3,"wangwu",22),(4,"zhaoliu",25)] #拼装插入的数值
>>> cur. executemany ('insert into users values (?,?,?)',sql) #批量运行
<sqlite3.Cursor object at 0x031A3720>
>>> conn. commit() #提交
打印结果:
>>> results = cur.execute('select * from users')
>>> for result in results:
print result

(1, u'zhangsan', 18)
(2, u'lisi', 20)
(3, u'wangwu', 22)
(4, u'zhaoliu', 25)
更新(修改)
>>> cur.execute("update users set name='zhangsan1' where id = 1") #修改
<sqlite3.Cursor object at 0x031A3720>
>>> conn.commit()
>>> cur.execute("select * from users where id = 1")
<sqlite3.Cursor object at 0x031A3720>
>>> cur.fetchone() #打印一条
(1, u'zhangsan1', 18)
删除
>>> cur.execute("delete from users where id = 1")
<sqlite3.Cursor object at 0x031A3720>
>>> conn.commit()
>>> cur.execute("select * from users")
<sqlite3.Cursor object at 0x031A3720>
>>> cur.fetchall()
[(2, u'lisi', 20), (3, u'wangwu', 22), (4, u'zhaoliu', 25)]
基本这些应该够用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值