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以来的秒数

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