sqlite3 的使用,性能及限制
python 中使用sqlite3
首先是基本的使用:
代码语言:javascript复制# coding=utf8
__author__ = 'Administrator'
# 导入模块,在 python 中是已经内置了这个模块,所以就不需要安装而直接使用了
import sqlite3
# 创建数据库的连接,sqlite 是使用的本地文件进行存储的,这里直接打开
conn = sqlite3.connect('path_to_database_name.db', timeout=5)
# 对比 mysql 可以进行网络连接数据库,所以要加上对应的协议,用户,密码,地址,数据库,编码等构造出类似的连接字符串
# 操作
# 获取游标
cursor = conn.cursor()
# 对于数据库的表的操作是通过游标进行的,所以在操作之前要获取游标对象,要注意的是使用完之后进行关闭
# 查询一个对象
cursor.execute("select * from tb_student where age > ?", (15, ))
# 这里是通过游标执行了一个查询语句,其中可以通过占位符进行构造设置相应的参数,很方便不用字符串拼接了。
# 但是表名,还是需要老老实实的写进去的,占位符会有异常,这里是一个坑
# 获取数据
result = cursor.fetchall()
result = cursor.fetchmany(20)
result = cursor.fetchone()
# 分别是获取所有,获取一定数量,获取一个
# 结果类型是 列表 或元组,元组里面是对应数据库里的字段
# 可以自己进行一下包装,用 namedtuple 进行命名,就可以像对象获取属性一项进行操作!!!
# 最后,在操作完成之后一定要关闭连接
conn.close()
# 这里的最佳实践是用 python 的上下文管理器,这样就不用每次都去close了
接下来就是它的一些特点:
- 简洁 api 很简洁,使用方便易上手
- 轻便 零配置,无需安装配置管理
- 可嵌入 C语言编写,精致小巧吗,易于嵌入到其他设备
- 无网络 在一些终端使用,很合适
- 快速的 除了在高并发的写的性能上可能低于mysql postgresql外,其他的都不慢
- 其他还有很多很多
这里: 此次项目主要是想选择一个不需要使用网络连接的,小巧的,高效的,数据存储的一个东西,叮咚,sqlite,正合适!!! 并且 sqlite3 还提供了一些操作接口 ,这就更加方便了!