首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[SQLite]树莓派轻松上手:SQLite数据库访问指南,解锁数据存储新技能

发布于 2025-06-23 14:48:28
0
1236

SQLite 是一款轻量级的数据库,非常适合用于树莓派等嵌入式设备。在本文中,我们将详细介绍如何在树莓派上使用 SQLite 数据库,包括安装、基础操作、高级应用以及如何解锁数据存储的新技能。安装 S...

SQLite 是一款轻量级的数据库,非常适合用于树莓派等嵌入式设备。在本文中,我们将详细介绍如何在树莓派上使用 SQLite 数据库,包括安装、基础操作、高级应用以及如何解锁数据存储的新技能。

安装 SQLite

首先,确保你的树莓派上安装了 SQLite。大多数 Linux 发行版默认包含了 SQLite。如果没有,可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install sqlite3

连接到 SQLite 数据库

在树莓派上,你可以使用 Python 来连接到 SQLite 数据库。以下是如何连接到 SQLite 数据库的示例代码:

import sqlite3
# 连接到SQLite数据库
# 如果文件不存在,会自动在当前目录创建一个数据库文件
conn = sqlite3.connect('example.db')
# 创建一个Cursor对象并使用它来执行SQL语句
cursor = conn.cursor()
# 执行一个查询
cursor.execute("SELECT sqlite_version();")
# 使用fetchone()获取查询结果
version = cursor.fetchone()
print("SQLite version:", version[0])
# 关闭Cursor
cursor.close()
# 关闭Connection
conn.close()

创建和删除表

使用 SQLite,你可以轻松地创建和删除表。以下是如何创建一个名为 users 的表,其中包含 idname 两列的示例:

import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建一个名为users的表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL
)
''')
# 提交事务
conn.commit()
# 关闭Cursor和Connection
cursor.close()
conn.close()

插入、更新和删除数据

使用 SQLite,你可以执行 CRUD(创建、读取、更新、删除)操作。以下是如何在 users 表中插入、更新和删除数据的示例:

import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 插入数据
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
conn.commit()
# 更新数据
cursor.execute("UPDATE users SET name = 'Alice Smith' WHERE id = 1")
conn.commit()
# 删除数据
cursor.execute("DELETE FROM users WHERE id = 1")
conn.commit()
# 关闭Cursor和Connection
cursor.close()
conn.close()

高级应用

SQLite 提供了许多高级功能,如事务处理、索引优化、外键约束和触发器。以下是一些高级应用的示例:

  • 事务处理:确保一组操作要么全部成功,要么全部失败。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 开始一个事务
cursor.execute("BEGIN TRANSACTION;")
# 执行多个操作
cursor.execute("INSERT INTO users (name) VALUES ('Bob');")
cursor.execute("UPDATE users SET name = 'Bob Johnson' WHERE id = 2;")
# 如果所有操作成功,则提交事务
conn.commit()
# 如果操作失败,则回滚事务
# conn.rollback()
cursor.close()
conn.close()
  • 索引优化:使用索引显著提高查询速度。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 在name列上创建索引
cursor.execute("CREATE INDEX IF NOT EXISTS idx_name ON users (name);")
cursor.close()
conn.close()
  • 外键约束:维护数据之间的关系完整性。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建一个名为departments的表,并设置外键约束
cursor.execute('''
CREATE TABLE IF NOT EXISTS departments ( id INTEGER PRIMARY KEY, name TEXT NOT NULL
)
ALTER TABLE users ADD COLUMN department_id INTEGER,
ADD FOREIGN KEY (department_id) REFERENCES departments (id)
''')
cursor.close()
conn.close()
  • 触发器:在特定事件(如数据插入或修改)发生时自动执行操作。
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建一个触发器,在插入新用户时自动更新部门信息
cursor.execute('''
CREATE TRIGGER update_department_after_insert
AFTER INSERT ON users
BEGIN UPDATE departments SET name = NEW.name WHERE id = NEW.department_id;
END;
''')
cursor.close()
conn.close()

通过以上指南,你可以在树莓派上轻松地使用 SQLite 数据库,并解锁数据存储的新技能。无论是简单的数据存储还是复杂的应用程序,SQLite 都是一个强大的工具。

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流