在SQLite3中创建表时,当遇到意味着类似内容的所有可能数据类型时,我会感到困惑,所以有人能告诉我以下数据类型之间的区别吗?
INT, INTEGER, SMALLINT, TINYINT
DEC, DECIMAL
LONGCHAR, LONGVARCHAR
DATETIME, SMALLDATETIME
Run Code Online (Sandbox Code Playgroud)
是否有某些文件列出了最小/最大值.各种数据类型的能力?例如,我猜smallint的最大值大于tinyint,但值小于整数,但我不知道这些容量是什么.
J. *_*fer 94
SQLite从技术上讲,没有数据类型,清单打字系统中有存储类,是的,如果你习惯了传统的RDBMSes ,那就太混乱了.内部的所有内容都存储为文本.基于亲和力(分配给列的ala数据类型)将数据类型强制/转换为各种存储位置.
我建议你做的最好的事情是:
暂时忘记您曾经了解的有关独立数据库数据类型的所有内容
从SQLite网站上阅读上面的链接.
根据旧架构获取类型,并查看它们映射到的内容 SQLite
将所有数据迁移到SQLite数据库.
注意:数据类型限制可能很麻烦,尤其是在您添加持续时间,日期或具有该性质的事物时SQL.SQLite对于那种事情,很少有内置函数.但是,SQLite确实提供了一种简单的方法,您可以通过sqlite3_create_function库函数创建自己的内置函数,以添加持续时间和此类事物.您将使用该工具代替传统的存储过程.
dan*_*n04 46
区别在于语法糖.只有少数类型名称的子串与类型亲和关系一样重要.
SQLite站点列出了确定关联性的规则.
如果您坚持严格键入,可以使用CHECK约束来实现它:
CREATE TABLE T (
N INTEGER CHECK(TYPEOF(N) = 'integer'),
Str TEXT CHECK(TYPEOF(Str) = 'text'),
Dt DATETIME CHECK(JULIANDAY(Dt) IS NOT NULL)
);
Run Code Online (Sandbox Code Playgroud)
但我从不打扰它.
至于每种类型的容量:
INTEGER总是签署64位.请注意,SQLite优化了幕后小整数的存储,因此TINYINT无论如何都不会有用.REAL总是64位(double).TEXT并且BLOB具有由预处理器宏确定的最大大小,默认值为1,000,000,000字节.| 归档时间: |
|
| 查看次数: |
86129 次 |
| 最近记录: |