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 表时可以使用的各种数据类型名称。

数据类型 亲和性
  • 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
  • DOUBLE
  • DOUBLE PRECISION
  • FLOAT
REAL
  • NUMERIC
  • DECIMAL(10,5)
  • BOOLEAN
  • DATE
  • DATETIME
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 以来的秒数

您可以选择使用任何这些格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。

广告