SQLite 数据类型
SQLite数据类型用于指定任何对象的数据类型。每个列,变量和表达式在SQLite中都有相关的数据类型。这些数据类型在创建表时使用。 SQLite使用更通用的动态类型系统。在SQLite中,值的数据类型与值本身相关联,而不与值的容器相关联。
SQLite数据类型的类型
SQLite存储类
SQLite数据库中的存储值具有以下存储类别之一:
存储类 |
说明 |
NULL |
它指定该值为空值。 |
INTEGER |
它指定值是一个有符号整数,根据值的大小存储在1、2、3、4、6或8个字节中。 |
REAL |
它指定该值为浮点值,存储为8字节IEEE浮点数。 |
文本 |
它指定值是一个文本字符串,使用数据库编码(utf-8,utf-16be或utf-16le)存储 |
BLOB |
它指定值是数据的一滴,完全按输入存储。 |
注意: SQLite存储类比数据类型更通用。例如: INTEGER存储类包括6种不同长度的不同整数数据类型。
SQLite关联类型
SQLite支持列的类型关联。任何列仍然可以存储任何类型的数据,但是该列的首选存储类称为亲和力。
在SQLite3数据库中有以下类型的亲和力用于分配。
Affinity |
说明 |
TEXT |
此列用于使用存储类NULL,TEXT或BLOB存储所有数据。 |
NUMERIC |
此列可能包含使用所有五个存储类的值。 |
INTEGER |
它的行为与具有数字亲和力的列相同,但强制转换表达式中有例外。 |
REAL |
它的行为类似于具有数字亲和力的列,不同之处在于它将整数值强制为浮点表示形式 |
无 |
具有相似性NONE的列不喜欢一个存储类别而不是另一个存储类别,也不说服数据从一个存储类别进入另一个存储类别。 |
SQLite相似性和类型名称
以下是创建SQLite表时可以使用的各种数据类型名称的列表。
数据类型 |
对应的亲和力 |
INT整数TINYINT SMALLINT MEDIUMINT BIGINT未签名的BIG INT INT2 INT8 |
INTEGER |
CHARACTER(20)VARCHAR(255)可变字符(255)NCHAR(55)原始字符(70)NVARCHAR(100)文本CLOB |
TEXT |
BLOB未指定数据类型 |
无 |
真正的双精度浮标 |
REAL |
数字十进制(10,5)布尔型日期DATETIME |
NUMERIC |
日期和时间数据类型
在SQLite中,没有单独的类来存储日期和时间。但是您可以将日期和时间存储为TEXT,REAL或INTEGER值。
存储类 |
日期格式 |
TEXT |
它以" yyyy-mm-dd hh: mm: ss.ssss"之类的格式指定日期。 |
REAL |
它指定自公元前4714年11月24日格林威治中午以来的天数。 |
INTEGER |
它指定自1970年1月1日00:00:00世界标准时间以来的秒数。 |
布尔数据类型
在SQLite中,没有单独的布尔存储类。而是将布尔值存储为整数0(假)和1(真)。