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 根据声明的数据类型确定列的亲和性:
- 如果声明的类型包含 绳子 “INT“。
- 如果列的数据类型包含以下字符串之一,则分配 TEXT 亲和性“文字“,”CHAR, 要么 ”CLOB“。例如,类型 VARCHAR 将被分配 TEXT 亲和性。
- 如果列没有指定类型或数据类型是 BLOB,则会分配 BLOB 亲和性。
- 如果类型包含以下字符串之一,则分配 REAL 亲和性“杜布“,”REAL, 要么 ”FLOAT“。
- NUMERIC 亲和性被分配给任何其他数据类型。
同一页上还有一个表格,显示了以下映射的一些示例: 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 与其他数据库管理系统不同,还在数据类型中引入了一些新概念,例如类型亲和性和存储类。