Published: 29 Jul 2026 › Updated: 29 Jul 2026
SQLite极简入门 / ai #63
DeepAgent等Agent都采用了SQLite作为本地数据库来用,看来,是要对SQLite补补课啰。
SQLite(来源:网络)
下载与资源
简介
SQLite 是一个零配置、无服务器、单文件存储的轻量级关系型数据库引擎。它不需要安装独立的服务进程,整个数据库就是一个磁盘文件(.db 或 .sqlite),非常适合嵌入式应用、本地数据存储、原型开发和中小型项目。
特点
| 特性 | 说明 |
|---|---|
| 零配置 | 无需安装、启动服务或修改配置文件 |
| 单文件 | 整个数据库(表、索引、数据)存于一个文件中 |
| 跨平台 | 支持 Windows、macOS、Linux、Android、iOS 等 |
| 嵌入式 | 直接嵌入到应用程序中(如 Python 内置支持) |
| 事务安全 | 支持 ACID,通过 WAL 模式提升并发性能 |
| 轻量 | 库文件仅几百 KB,资源占用极低 |
简单运用
Python 标准库自带 sqlite3 模块,无需额外安装。
- 创建数据库
import sqlite3
# 连接数据库(不存在则自动创建)
conn = sqlite3.connect('demo.db')
cursor = conn.cursor()
# 创建用户表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
)
''')
conn.commit()
- 插入数据
# 单条插入
cursor.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)",
("张三", 25, "zhangsan@example.com"))
# 批量插入
users = [
("李四", 30, "lisi@example.com"),
("王五", 22, "wangwu@example.com"),
]
cursor.executemany("INSERT INTO users (name, age, email) VALUES (?, ?, ?)", users)
conn.commit()
- 查询数据
cursor.execute("SELECT * FROM users WHERE age > ?", (20,))
rows = cursor.fetchall()
for row in rows:
print(row) # (1, '张三', 25, 'zhangsan@example.com')
- 关闭连接
cursor.close()
conn.close()
案例 :本地待办事项管理
import sqlite3
from datetime import datetime
conn = sqlite3.connect('todo.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS todos (
id INTEGER PRIMARY KEY,
task TEXT,
created_at TEXT,
done INTEGER DEFAULT 0
)''')
# 添加任务
c.execute("INSERT INTO todos (task, created_at) VALUES (?, ?)",
("学习 SQLite", datetime.now().isoformat()))
conn.commit()
# 查看未完成任务
c.execute("SELECT * FROM todos WHERE done = 0")
print(c.fetchall())
conn.close()
Leave SQLite极简入门 / ai #63 to:
Read more #cn posts
Best Posts From lemooljiang
We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.