SQLite 数据类型

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

SQLite 数据类型的类型

SQLite 存储类

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

存储类 描述
NULL 它指定该值为空值。
INTEGER 它指定值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 个字节中。
REAL 它指定值是一个浮点值,存储为一个 8 字节的 IEEE 浮点数。
text 它指定值是文本字符串,使用数据库编码(utf-8、utf-16be 或 utf-16le)存储
BLOB 它指定该值是一个数据块,完全按照输入的方式存储。

SQLite 亲和类型

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

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

Affinity 描述
TEXT 此列用于存储使用存储类 NULL、TEXT 或 BLOB 的所有数据。
NUMERIC 此列可能包含使用所有五个存储类的值。
INTEGER 它的行为与具有数字亲和力的列相同,但在强制转换表达式中存在异常。
REAL 它的行为类似于具有数字亲和力的列,只是它将整数值强制转换为浮点表示
NONE 亲和性为 NONE 的列不会优先于一个存储类而不是另一个存储类,并且不会将数据从一个存储类说服到另一个存储类。

SQLite 亲和力和类型名称

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

数据类型 Corresponding Affinity
INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 INTEGER
CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB TEXT
BLOB 未指定数据类型 NONE
真正的双精度浮点数 REAL
NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME NUMERIC

日期和时间数据类型

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

存储类 日期格式
文本 它以类似“yyyy-mm-dd hh:mm:ss.sss”的格式指定日期。
真实的 它指定从公元前 4714 年 11 月 24 日格林威治中午开始的天数
整数 它指定自 1970-01-01 00:00:00 utc 以来的秒数。

布尔数据类型

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

热门文章

优秀文章