参考sqlite官方文档:https://www.sqlite.org/datatype3.html
绝大多数的SQL数据库采用静态的、严格的数据类型,数据库中的值由数据表的列类型定义决定。
然而,sqlite并非如此,sqlite采用更一般的、动态的数据类型。每一个存储在sqlite中的数据类型均为以下五种之一:
NULL 表示一个 NULL 值。
INTEGER 表示一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
REAL 表示一个浮点值,存储为 8字节的 IEEE 浮点数字。
TEXT 表示一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
BLOB 表示一个 blob 数据,完全根据它的输入存储。
sqlite支持列上的“类型近似”(Type Affinity)概念。需要注意的是,任何列仍然可以存储为其它的类型,但首选存储类是它的Type Affinity。下表是sqlite3中近似类型与传统数据库类型定义的对照表,注意以下数据类型只是sqlite3能够接受的数据类型的一小部分示例。
Affinity | 数据类型 |
INTEGER | INT、INTEGER、TINYINT、SMALLINT、MEDIUMINT、BIGINT、UNSIGNED BIG INT、INT2、INT8 |
TEXT | CHARACTER(20)、VARCHAR(255)、VARYING CHARACTER(255)、NCHAR(55)、NATIVE CHARACTER(70)、NVARCHAR(100)、TEXT、CLOB |
NONE | BLOB、no datatype specified |
REAL | REAL、DOUBLE、DOUBLE PRECISION、FLOAT |
NUMERIC | NUMERIC、DECIMAL(10,5)、BOOLEAN、DATE、DATETIME |