SQLite - 数据类型
SQLite 数据类型是一个属性,它指定任何对象的数据类型。 SQLite 中的每一列、变量和表达式都有相关的数据类型。
您将在创建表时使用这些数据类型。 SQLite 使用更通用的动态类型系统。 在 SQLite 中,值的数据类型与值本身相关联,而不是与其容器相关联。
SQLite 存储类
存储在 SQLite 数据库中的每个值都具有以下存储类之一 −
序号 | 存储类 & 说明 |
---|---|
1 | NULL 该值为 NULL 值。 |
2 | INTEGER 该值是一个有符号整数,根据值的大小存储在 1、2、3、4、6 或 8 个字节中。 |
3 | REAL 该值是一个浮点值,存储为一个 8 字节的 IEEE 浮点数。 |
4 | TEXT 该值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储 |
5 | BLOB 该值是一团数据,完全按照输入的方式存储。 |
SQLite 存储类比数据类型更通用。 例如,INTEGER 存储类包括 6 种不同长度的整数数据类型。
SQLite 亲和类型
SQLite 支持列上的类型亲和性 的概念。 任何列仍然可以存储任何类型的数据,但列的首选存储类称为其亲和性。 SQLite3 数据库中的每个表列都分配有以下类型关联之一 −
序号 | 亲和性 & 说明 |
---|---|
1 | TEXT 此列使用存储类 NULL、TEXT 或 BLOB 存储所有数据。 |
2 | NUMERIC 此列可能包含使用所有五个存储类的值。 |
3 | INTEGER 行为与具有 NUMERIC 亲和性的列相同,但在 CAST 表达式中存在异常。 |
4 | REAL 行为类似于具有 NUMERIC 亲和性的列,只是它将整数值强制转换为浮点表示。 |
5 | NONE 具有亲和性 NONE 的列不会优先选择一个存储类而不是另一个存储类,并且不会尝试将数据从一个存储类强制转换到另一个存储类。 |
SQLite 亲和性和类型名称
下表列出了在创建具有相应应用的关联性的 SQLite3 表时可以使用的各种数据类型名称。
数据类型 | 亲和性 |
---|---|
|
INTEGER |
|
TEXT |
|
NONE |
|
REAL |
|
NUMERIC |
布尔数据类型
SQLite 没有单独的布尔存储类。 相反,布尔值存储为整数 0 (false) 和 1 (true)。
日期和时间数据类型
SQLite 没有单独的存储类来存储日期和/或时间,但 SQLite 能够将日期和时间存储为 TEXT、REAL 或 INTEGER 值。
序号 | 存储类 & 日期格式 |
---|---|
1 | TEXT 格式为"YYYY-MM-DD HH:MM:SS.SSS"的日期 |
2 | REAL 自公元前 4714 年 11 月 24 日格林威治中午以来的天数。 |
3 | INTEGER 自 1970-01-01 00:00:00 UTC 以来的秒数 |
您可以选择以任何这些格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。