SQLite 数据类型
SQLite数据类型用于指定任何对象的数据类型。在SQLite中,每个列,变量和表达式都有相关的数据类型。在创建表时使用这些数据类型。SQLite使用了更通用的动态类型系统。在SQLite中,值的数据类型与其自身关联,而不是与其容器相关。
SQLite数据类型的类型
SQLite存储类
SQLite数据库中存储的值具有以下存储类之一:
存储类 | 描述 |
---|---|
NULL | 指定值为null值。 |
INTEGER | 指定值为有符号整数,根据值的大小,存储在1、2、3、4、6或8个字节中。 |
REAL | 指定值为浮点数,以8个字节的IEEE浮点数存储。 |
text | 指定值为文本字符串,使用数据库编码(utf-8、utf-16be或utf-16le)进行存储。 |
BLOB | 指定值为数据块,按输入方式存储。 |
注意:SQLite的存储类比数据类型略为通用。例如:INTEGER存储类包括6种不同长度的整数数据类型。
SQLite关联类型
SQLite支持列的关联类型。任何列仍然可以存储任意类型的数据,但首选的存储类称为其关联。
在SQLite3数据库中使用以下类型关联:
亲和性 | 描述 |
---|---|
TEXT | 此列用于存储所有使用存储类NULL、TEXT或BLOB的数据。 |
NUMERIC | 此列可以包含使用所有五个存储类的值。 |
INTEGER | 其行为与具有数值亲和性的列相同,唯一的例外是在转换表达式中。 |
REAL | 其行为类似于具有数值亲和性的列,只是它会将整数值强制转换为浮点表示。 |
NONE | 具有NONE亲和性的列不偏好任何存储类,而且不会将数据从一种存储类转换为另一种。 |
SQLite亲和性和类型名称
以下是在创建SQLite表时可以使用的各种数据类型名称列表。
数据类型 | 相应的亲和性 |
---|---|
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 no datatype specified | NONE |
REAL DOUBLE DOUBLE PRECISION FLOAT | REAL |
NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME | NUMERIC |
日期和时间数据类型
在SQLite中,没有单独的类来存储日期和时间。但是你可以将日期和时间存储为TEXT、REAL或INTEGER值。
存储类别 | 日期格式 |
---|---|
TEXT | 它指定以”yyyy-mm-dd hh:mm:ss.sss”的格式表示的日期。 |
REAL | 它指定自公元前4714年11月24日格林尼治时间中午以来的天数。 |
INTEGER | 它指定自1970-01-01 00:00:00 UTC以来的秒数。 |
布尔数据类型
在SQLite中,没有单独的布尔存储类。相反,布尔值以整数0(假)和1(真)的形式存储。