SQLite 数据类型示例:Int、Text、Numeric、Real、Blob

中的数据类型 SQLite 与其他数据库管理系统相比有所不同。 SQLite,您可以正常声明数据类型,但仍然可以以任何数据类型存储任何值。

SQLite 类型较少。没有数据类型,您可以在任何列中存储任何类型的数据。这称为动态类型。

在静态类型中,就像在其他数据库管理系统中一样,如果你声明了一个数据类型为整数的列,那么你只能插入数据类型为整数的值。然而,在动态类型中,比如 SQLite,列的类型由插入的值决定。然后 SQLite 根据其类型存储该值。

SQLite 储存类别

In SQLite 根据值的类型有不同的存储方法,这些不同的存储方法称为存储类 SQLite.

以下是可用的存储类别 SQLite:

  • – 此存储类用于存储任何 NULL 值。
  • INTEGER – 任何数值都存储为有符号整数值(它可以保存正整数和负整数值)。 SQLite 根据数字的值,存储在 1、2、3、4、6 或 8 个字节的存储空间中。
  • REAL – 此存储类用于存储浮点值,它们存储在 8 字节的存储空间中。
  • 文字 – 存储文本字符串。它还支持不同的编码,如 UTF-8、UTF-16 BE 或 UTF-26LE。
  • BLOB – 用于存储大文件,如图像或文本文件。该值存储为与输入值相同的字节数组。

SQLite 亲和类型

类型亲和性是建议在列中存储的数据类型。但是,您仍然可以根据需要存储任何类型的数据,这些类型是建议的,而不是必需的。

这些类型被引入于 SQLite 最大限度地提高之间的兼容性 SQLite 和别的 数据库管理系统.

在 SQLite 数据库根据其声明的数据类型被分配类型亲和性。这里类型亲和性的提升 SQLite:

  • 文本。
  • 数字。
  • 整数。
  • 真实的。
  • 斑点。

就是这样 SQLite 根据声明的数据类型确定列的亲和性:

  1. 如果声明的类型包含 绳子INT“。
  2. 如果列的数据类型包含以下字符串之一,则分配 TEXT 亲和性“文字“,”CHAR, 要么 ”CLOB“。例如,类型 VARCHAR 将被分配 TEXT 亲和性。
  3. 如果列没有指定类型或数据类型是 BLOB,则会分配 BLOB 亲和性。
  4. 如果类型包含以下字符串之一,则分配 REAL 亲和性“杜布“,”REAL, 要么 ”FLOAT“。
  5. NUMERIC 亲和性被分配给任何其他数据类型。

同一页上还有一个表格,显示了以下映射的一些示例: SQLite 数据类型及其亲和性由以下规则决定:

SQLite 亲和类型
之间的映射 SQLite 数据类型和亲和性

存储数据类型的示例 SQLite

存储号码 SQLite 整数

任何数据类型的列包含“INT”字样,它将被分配一个 INTEGER 类型亲和性。它将存储在 INTEGER 存储类中。

以下所有数据类型均被分配为 INTEGER 类型亲和性:

  • INT,整数,BIGINT。
  • INT2、INT4、INT8。
  • TINYINT、SMALLINT、MEDIUM INT。

INTEGER 类型亲和性 SQLite 可以保存从 1 个字节到最多 8 个字节的任何分配的整数(正数或负数)。

使用以下方式存储数字 SQLite REAL

REAL 数是具有双倍浮点精度的数。 SQLite 将实数存储为 8 字节数组。以下是 SQLite 你可以使用它来存储实数:

  • 真实的。
  • 双倍的。
  • 双精度。
  • 漂浮。

使用 SQLite BLOB

只有一种方法可以将大文件存储到 SQLite 数据库,并使用 BLOB 数据类型。此数据类型用于存储大型文件,如图像、文件(任何类型)等。文件被转换为字节数组,然后以与输入文件相同的大小存储。

储存 SQLite 布尔

SQLite 没有单独的 BOOLEAN 存储类。但是,BOOLEAN 值存储为 INTEGERS,值为 0(为 false)或 1(为 true)。

储存 SQLite 日期和时间

您可以在以下位置声明日期或日期时间 SQLite 使用下列数据类型之一:

  • 日期
  • 日期时间
  • TIMESTAMP
  • 时间

请注意,没有单独的 DATE 或 DATETIME 存储类 SQLite。相反,使用前面一种数据类型声明的任何值都将存储在存储类中,具体取决于插入值的日期格式,如下所示:

  • 文字 – 如果您插入的日期值格式为 ISO8601 字符串(“YYYY-MM-DD HH:MM:SS.SSS”)。
  • REAL – 如果您以儒略日数插入日期值,即自公元前 24 年 4714 月 XNUMX 日格林威治中午以来的天数,则日期值将存储为 REAL。
  • INTEGER as Unix的 时间,自 1970-01-01 00:00:00 UTC 以来的秒数。

结语

SQLite 支持广泛的数据类型。但同时,它在数据类型方面非常灵活。您可以将任何值类型放入任何数据类型中。 SQLite 与其他数据库管理系统不同,还在数据类型中引入了一些新概念,例如类型亲和性和存储类。