SQLite 数据类型

2024 年 8 月 29 日 | 阅读 3 分钟

SQLite 数据类型用于指定任何对象的数据类型。每个列、变量和表达式在 SQLite 中都有相关的数据类型。这些数据类型在创建表时使用。SQLite 使用更通用的动态类型系统。在 SQLite 中,值的 数据类型 与值本身相关联,而不是与它的容器相关联。

SQLite 数据类型

SQLite 存储类别

SQLite 数据库中存储的值具有以下存储类别之一

存储类描述
NULL它指定该值为 null 值。
INTEGER它指定该值为带符号整数,根据值的幅度,以 1、2、3、4、6 或 8 个字节存储。
REAL它指定该值为浮点值,存储为 8 字节 IEEE 浮点数。
text它指定该值为文本字符串,使用数据库编码(utf-8、utf-16be 或 utf-16le)存储
BLOB它指定该值为数据块,存储方式与输入完全相同。

注意:SQLite 存储类别比数据类型更通用。例如:INTEGER 存储类别包括 6 种不同长度的整数数据类型。


SQLite 亲和类型

SQLite 支持列的类型亲和性。任何列仍然可以存储任何类型的数据,但列的首选存储类别称为其亲和性。

以下是用于在 SQLite3 数据库中分配的类型亲和性。

亲和性描述
TEXT此列用于使用存储类别 NULL、TEXT 或 BLOB 存储所有数据。
NUMERIC此列可以使用所有五个存储类别的值。
INTEGER它的行为与具有数值亲和性的列相同,但 cast 表达式除外。
REAL它的行为类似于具有数值亲和性的列,但它强制将整数值转换为浮点数表示形式
NONE具有 NONE 亲和性的列不倾向于一个存储类别而不是另一个存储类别,并且不会将数据从一个存储类别转换到另一个存储类别。

SQLite 亲和性和类型名称

以下是创建 SQLite 表时可以使用的各种数据类型名称的列表。

数据类型对应亲和性
INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8INTEGER
CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOBTEXT
BLOB 未指定数据类型NONE
REAL DOUBLE DOUBLE PRECISION FLOATREAL
NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIMENUMERIC

日期和时间数据类型

在 SQLite 中,没有单独的类来存储日期和时间。但是,您可以将日期和时间存储为 TEXT、REAL 或 INTEGER 值。

存储类日期格式
TEXT它指定日期,格式类似于“yyyy-mm-dd hh:mm:ss.sss”。
REAL它指定自公元前 4714 年 11 月 24 日格林威治时间中午以来经过的天数。
INTEGER它指定自 1970-01-01 00:00:00 utc 以来经过的秒数。

布尔数据类型

在 SQLite 中,没有单独的布尔存储类别。相反,布尔值存储为整数 0(false)和 1(true)。


下一个主题SQLite 运算符