SQLite 附加数据库学习笔记

SQLite 是一个轻型的关系型数据库管理系统,具有小巧、快速、可嵌入等特点。本篇学习笔记将介绍如何使用 SQLite 的“附加数据库”功能来操作多个数据文件。

什么是附加数据库

SQLite 允许在一个数据库连接中同时打开多个数据库文件,这就是所谓的“附加数据库”。通过附加数据库,可以使用单一的 SQL 语句访问多个数据文件,从而方便地管理和操作数据。

如何附加数据库

要使用 SQLite 的附加数据库功能,需要使用 SQL 命令 ATTACH DATABASE 将多个数据库文件附加到当前连接中。命令格式如下:

sqlCopy Code
ATTACH DATABASE 'path/to/database/file' AS alias;

其中 'path/to/database/file' 是要附加的数据库文件路径,alias 是该数据库的别名。如果省略别名,则默认别名为 main

比如我们有两个数据库文件 user.dbmessage.db,它们分别存储了用户和消息数据。要同时访问这两个数据库文件,可以使用以下命令:

sqlCopy Code
ATTACH DATABASE 'path/to/user.db' AS user; ATTACH DATABASE 'path/to/message.db' AS message;

这样在后面的 SQL 语句中,就可以使用 user.message. 前缀来访问对应的表。

示例

假设我们有两个数据库文件 user.dbmessage.db,它们的表结构如下:

user.db

id name age
1 Alice 20
2 Bob 25
3 Charlie 30

message.db

id from_id to_id content
1 1 2 Hi Bob, how are you?
2 2 1 Hi Alice, I'm fine.
3 2 3 Hey Charlie, what's up?
4 3 2 Not much, just chilling.
5 1 3 Charlie, let's hang out!

现在,我们想要查询 Bob 收到的所有消息,可以使用以下 SQL 语句:

sqlCopy Code
ATTACH DATABASE 'path/to/user.db' AS user; ATTACH DATABASE 'path/to/message.db' AS message; SELECT message.content FROM message LEFT JOIN user ON message.from_id = user.id WHERE message.to_id = 2 AND user.name = 'Bob';

执行结果为:

Copy Code
Hi Bob, how are you? Not much, just chilling.

以上就是使用 SQLite 附加数据库进行多数据文件操作的实例。