SQLite 附加数据库学习笔记
SQLite 是一个轻型的关系型数据库管理系统,具有小巧、快速、可嵌入等特点。本篇学习笔记将介绍如何使用 SQLite 的“附加数据库”功能来操作多个数据文件。
什么是附加数据库
SQLite 允许在一个数据库连接中同时打开多个数据库文件,这就是所谓的“附加数据库”。通过附加数据库,可以使用单一的 SQL 语句访问多个数据文件,从而方便地管理和操作数据。
如何附加数据库
要使用 SQLite 的附加数据库功能,需要使用 SQL 命令 ATTACH DATABASE
将多个数据库文件附加到当前连接中。命令格式如下:
sqlCopy CodeATTACH DATABASE 'path/to/database/file' AS alias;
其中 'path/to/database/file'
是要附加的数据库文件路径,alias
是该数据库的别名。如果省略别名,则默认别名为 main
。
比如我们有两个数据库文件 user.db
和 message.db
,它们分别存储了用户和消息数据。要同时访问这两个数据库文件,可以使用以下命令:
sqlCopy CodeATTACH DATABASE 'path/to/user.db' AS user;
ATTACH DATABASE 'path/to/message.db' AS message;
这样在后面的 SQL 语句中,就可以使用 user.
和 message.
前缀来访问对应的表。
示例
假设我们有两个数据库文件 user.db
和 message.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 CodeATTACH 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 CodeHi Bob, how are you?
Not much, just chilling.
以上就是使用 SQLite 附加数据库进行多数据文件操作的实例。