2012-03-01 80 views
2

直接取决于SQLite的站点“该值是一个有符号整数,根据值的大小存储在1,2,3,4,6或8个字节中“。SQLite整数大小:单独大小或整个组

这是否意味着如果您有1个值需要8个字节,则该列中的所有值将被视为8个字节。或者,如果其余全部为1个字节,并且一个值为8个字节,那么只有该值将使用8个字节,其余的将保持为1?

我更习惯于在其中指定相应的整数大小的SQL。

我知道这个问题似乎微不足道,但根据答案将决定我如何处理一块数据库。

回答

3

sqlite数据库结构在处理数据类型方面有所不同。每个字段可以有不同的类型......

这里是源码的documentation

大多数SQL数据库引擎使用静态类型。数据类型与表中的每列 相关联,并且只有该特定数据类型的值才允许存储在该列的 列中。 SQLite通过使用清单类型来放宽这个限制。在清单输入中, 数据类型是该值本身的属性,而不是存储值为 的列的属性。 SQLite因此允许用户将任何数据类型的任何值存储到任何列 中,而不管该列的声明类型如何。 (有一些例外情况:。 的INTEGER PRIMARY KEY列可仅存储整数和SQLite试图何时能强迫 值入列的声明数据类型)

+0

所以基本上,它适合每个数据类型以整数(如果可以的话)输入数据类型,并且将使用它可以进行的最小迭代,而不管列中其他条目的大小或类型如何。 – Rhyono 2012-03-01 07:44:16

+0

是的,你甚至可以把字符放在同一列,它会处理它。怪怪的! – jroyce 2012-03-01 07:45:10

+1

我最初读为“椅子”(已经晚了)。感谢您的回应。 – Rhyono 2012-03-01 07:46:54