Sqlite 简明教程

SQLite - Data Type

SQLite 数据类型是一种属性,用于指定任何对象的类型。SQLite 中的每一列、变量和表达式都具有相关的数据类型。

在创建表时会使用这些数据类型。SQLite 使用一个更通用的动态类型系统。在 SQLite 中,一个值的数据类型与其自身关联,而不仅仅与其容器相关联。

SQLite Storage Classes

存储在 SQLite 数据库中的每个值都具有以下存储类之一 −

Sr.No.

Storage Class & Description

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 Affinity Type

SQLite 支持{@s1}在列上的概念。任何列仍然可以存储任何类型的数据,但是列的首选存储类被称作其{@s2}。SQLite3 数据库中的每一张表都被分配以下类型关联中的一个 −

Sr.No.

Affinity & Description

1

TEXT 此列使用存储类 NULL、TEXT 或 BLOB 存储所有数据。

2

NUMERIC 此列可以使用所有五个存储类来包含值。

3

INTEGER 与 NUMERIC 关联的列的行为类似,在 CAST 表达式中除外。

4

REAL 与 NUMERIC 关联的列的行为类似,但它会强行将整数的值转换为浮点数表示。

5

NONE 关联为 NONE 的列不会优先考虑某种存储类,也不会尝试将数据从一种存储类强制转换为另一种存储类。

SQLite Affinity and Type Names

下表列出了在使用相应的应用关联创建 SQLite3 时可用于创建 SQLite3 数据库的各种数据类型名称。

Data Type

Affinity

INTINTEGERTINYINTSMALLINTMEDIUMINTBIGINTUNSIGNED BIG INTINT2INT8

INTEGER

CHARACTER(20)VARCHAR(255)VARYING CHARACTER(255)NCHAR(55)NATIVE CHARACTER(70)NVARCHAR(100)TEXTCLOB

TEXT

BLOBno datatype specified

NONE

REALDOUBLEDOUBLE PRECISIONFLOAT

REAL

NUMERICDECIMAL(10,5)BOOLEANDATEDATETIME

NUMERIC

Boolean Datatype

SQLite 没有单独的布尔存储类。相反,布尔值被存储为整数 0(假)和 1(真)。

Date and Time Datatype

SQLite 没有用于存储日期和/或时间的单独存储类,但 SQLite 能够将日期和时间作为 TEXT、REAL 或 INTEGER 值进行存储。

Sr.No.

存储类和日期格式

1

TEXT 类似 "YYYY-MM-DD HH:MM:SS.SSS" 的日期格式

2

REAL 格林尼治于公元前 4714 年 11 月 24 日正午以来经过的天数

3

INTEGER 从 1970-01-01 00:00:00 UTC 起经过的秒数

你可以选择使用其中任何格式来存储日期和时间,并使用内置日期和时间函数在格式之间自由转换。