SQLITE DB如何将多个表的数据保存在一个文件中?

问题描述 投票:-2回答:1

我正在创建一个简化版本的SQLite数据库的项目。当试图弄清楚它如何在一个文件中存储具有不同模式的多个表的数据时,我陷入了困境。我想它应该使用一些索引来映射不同表的数据。有人可以进一步说明其实际效果吗?谢谢。

编辑:我想文档中已经有一个解释,但是正在寻找一些更容易,更好,更快地理解它的方法。

database sqlite b-tree
1个回答
0
投票

模式是所有实体(表,视图等)(整个数据库)的列表,而不是在每个实体的基础上存在许多模式的数据库。

数据本身存储在页面中,每个页面由一个实体拥有。这些块被保存。

  • 默认页面大小为4k。您会注意到文件大小将始终是4K的倍数。您还可以通过实验创建一个包含一些表的数据库,注意它的大小,然后添加一些数据,如果添加的数据不需要另一页,请查看文件的大小是否相同。这说明了页面的全部内容,而不是线性/连续数据流。

It,模式,保存在名为sqlite_master的表中。该表具有列:-

  • 类型(类型,例如表格等),
  • 名称(给实体的名称),
  • tbl_name(实体适用的故事)
  • 根页面(到第一页的map
  • sql(用于生成实体的SQL,如果有的话)

    • 请注意,如果有临时表,则另一个模式sqlite_temp_master也可能存在。

例如:-

使用SELECT * FROM sqlite_master;可能会导致类似:-

enter image description here

2.6. Storage Of The SQL Database Schema

© www.soinside.com 2019 - 2024. All rights reserved.