Sqlite3:python自带的轻量、易用、文件化的数据库

简介

SQLite3 可使用 sqlite3 模块与 Python 进行集成。sqlite3 模块是由 Gerhard Haring 编写的。它提供了一个与 PEP 249 描述的 DB-API 2.0 规范兼容的 SQL 接口。您不需要单独安装该模块,因为 Python 2.5.x 以上版本默认自带了该模块。

为了使用 sqlite3 模块,您首先必须创建一个表示数据库的连接对象,然后您可以有选择地创建光标对象,这将帮助您执行所有的 SQL 语句。

官方中文文档

菜鸟教程

示例

# 初始化sqlite,打开entries.db,如果不存在,则创建此文件
conn = sqlite3.connect('entries.db')
# 创建一个光标,用于读取和写入
cur = conn.cursor()
# 首先尝试新建一个表
try:
    # 表名:rss,有4列,每一列的类型都是text
    cur.execute('''CREATE TABLE rss (id text, title text, time text, link text)''')
except:
    # 如果这个表已经存在就会报错并跳过。
    pass
# 从rss表中寻找id为特定值的记录
# ?配合后面的()表示传入参数
# 需要注意 (entry['id'],) 中的逗号是必须的,表明这是一个元组。如果不加逗号,python会将输入拆成一个个字符解析。
cur.execute("""SELECT id FROM rss WHERE id=?""",(entry['id'],))
# 获取最新一条命令的结果,如果存在返回正值,不存在返回false
result = cur.fetchone()
if result:
    # 如果存在本记录,则无需进行发送
    pass
else:
    # 调用信息发送
    # send(entry)
    # 将记录储存到数据库中,?配合(,)表示传入参数
    cur.execute('''INSERT INTO rss values (?,?,?,?)''', (entry["id"],entry["title"],entry["published"],entry["link"]))
    # 提交本次修改
    conn.commit()
#关闭数据库连接
conn.close()

参考:

  1. https://www.coder.work/article/6589876 判断某一值是否存在
  2. https://blog.csdn.net/wuyou1336/article/details/53770799 判断某一字段是否存在
  3. https://cloud.tencent.com/developer/article/1755686 使用LIMIT优化查询语句