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表时使用。
数据类型 | 亲和性类型 |
---|---|
| INTEGER |
| TEXT |
| NONE |
| REAL |
| 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以来的秒数 |
你可以选择以任何一种格式存储日期和时间,并使用内置的日期和时间功能在格式之间自由转换。