【问题标题】:SQlite NUMERIC data types sizeSQlite NUMERIC 数据类型大小
【发布时间】:2013-06-24 15:45:25
【问题描述】:

我一直在测试 sqlite3 类型的移动应用程序效率,但我遇到了奇怪的行为。

我以这种方式创建了一个表:

create table numeric_t(int_4 INTEGER(4), int_8 INTEGER(8), real_4 REAL(4), real_8 REAL(8), new_real DOUBLE, int_1 INTEGER(1));

并且正在设置值并查看哪些行显示小数位数等等......

我是否错误地认为:
- INTEGER 列不应该能够存储带小数的数字吗?
- INTEGER(1)、INTEGER(4) 和 REAL(4) 应该不能存储和其他一样多的小数位?

谢谢

Check out this snapshot of my results.

【问题讨论】:

    标签: database types sqlite precision


    【解决方案1】:

    在 SQLite 中,列类型不限制数据类型:

    > CREATE TABLE t(i INTEGER);
    > INSERT INTO T VALUES(1);
    > INSERT INTO T VALUES(1.23);
    > INSERT INTO T VALUES('forty-two');
    > SELECT typeof(i) FROM t;
    integer
    real
    text
    

    引用documentation

    SQLite 使用更通用的动态类型系统。在 SQLite 中,值的数据类型与值本身相关联,而不是与其容器相关联。
    [...]
    任何列...都可以用于存储任何存储类的值。

    【讨论】:

    • 那么在创建sqlite表时,INTEGER(1)或INTEGER(10)在写入/读取时会具有相同的内存占用和性能?
    • 好的,非常感谢,我会在这个问题上发布另一个问题以获取更多信息(:
    猜你喜欢
    • 1970-01-01
    • 2019-10-06
    • 2011-08-31
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 2011-03-31
    • 2022-11-07
    相关资源
    最近更新 更多