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支持以下概念类型亲和性,任何列仍然可以存储任何类型的数据,但该列的首选存储类称为它的affinity。 SQLite3数据库中的每个表列都被分配以下类型关联之一:

序号.亲和性和描述
1

TEXT

该列使用存储类NULL,TEXT或BLOB存储所有数据。

2

NUMERIC

该列可能包含使用所有五个存储类的值。

3

INTEGER

行为与具有NUMERIC关联性的列相同,但CAST表达式除外。

4

REAL

行为类似于具有NUMERIC关联性的列,不同之处在于它强制将整数值转换为浮点表示形式。

5

NONE

关联性为NONE的列不喜欢一个存储类别而不是另一个存储类别,并且不尝试将数据从一个存储类别强制转换为另一个存储类别。

SQLite相似性和类型名称


下表列出了各种数据类型名称,这些名称可以在创建具有相应应用相似性的SQLite3表时使用。

数据类型亲和性类型
  • INT

  • INTEGER

  • TINYINT

  • SMALLINT

  • 中号

  • BIGINT

  • 未签名的大整数

  • INT2

  • INT8

INTEGER
  • 人物(20)

  • VARCHAR(255)

  • 变化的字符(255)

  • NCHAR(55)

  • 原生角色(70)

  • NVARCHAR(100)

  • TEXT

  • CLOB

TEXT
  • BLOB

  • 未指定数据类型

NONE
  • REAL

  • DOUBLE

  • 双精度

  • FLOAT

REAL
  • NUMERIC

  • 十进制(10,5)

  • BOOLEAN

  • DATE

  • DATETIME

NUMERIC

布尔数据类型


SQLite没有单独的布尔存储类。取而代之的是,布尔值存储为整数0(假)和1(真)。

日期和时间数据类型


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

你可以选择以任何一种格式存储日期和时间,并使用内置的日期和时间功能在格式之间自由转换。