【问题标题】:SQLite integer size: individually sized or for the entire groupSQLite 整数大小:单独调整大小或用于整个组
【发布时间】:2012-03-01 16:02:24
【问题描述】:

直接取自 SQLite 的网站“该值是一个有符号整数,根据值的大小存储在 1、2、3、4、6 或 8 个字节中。”

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

我更习惯使用 SQL 来相应地指定整数大小。

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

【问题讨论】:

    标签: sqlite


    【解决方案1】:

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

    这是来自 sqlite 的documentation

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

    【讨论】:

    • 所以本质上,它会将每个条目作为一个整数放入数据类型中(如果可以的话),并且将使用它可以使用的最小迭代,而不管列中其他条目的大小或类型。
    • 是的,您甚至可以在同一列中放置一个字符,它会处理它。奇怪啊!
    • 一开始我把它读作“椅子”(已经很晚了)。感谢您的回复。
    • 哈哈。好吧,那很有趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多