本文概要
SQLite的数据类型被用来指定任何对象的数据的类型。每一列中,变量和表达式已在SQLite的相关数据类型。这些数据类型在创建表中使用。 SQLite的使用更一般的动态类型系统。 SQLite中,一个值的数据类型与值本身相关联,而不是与它的容器。
SQLite的数据类型的类型
SQLite的存储类型
在SQLite数据库所存储的值具有如下的存储类中的一种:
存储类 | 描述 |
---|---|
NULL | 它指定该值为空值。 |
整数 | 它指定值是一个带符号的整数,根据值的大小以1、2、3、4、6或8字节的形式存储。 |
REAL | 它指定的值是浮点值,存储为一个8字节的IEEE浮点数。 |
text | 它指定值是一个文本字符串,使用数据库编码(utf-8、utf-16be或utf-16le)存储 |
BLOB | 它指定值是一个数据blob,存储与输入时完全相同。 |
注:SQLite的存储类比数据类型稍微一般。例如:整数存储类包括不同长度的6种不同的整数数据类型。
SQLite的Afinity类型
SQLite支持用于列型Afinity力。任何列仍然可以存储任何类型的数据,但对一列中的优选的存储类被称为它的Afinity力。
有用于在sqlite3的数据库指定以下类型的Afinity力。
Afinity | 描述 |
---|---|
TEXT | 此列用于使用存储类NULL、TEXT或BLOB存储所有数据。 |
NUMBER | 此列可能包含使用所有五个存储类的值。 |
INTEGER | 它的行为一样与在流延表达异常数字Afinity性的柱。 |
REAL | 它的行为类似于具有数值关联性的列,只不过它将整数值强制转换为浮点表示形式 |
NONE | 具有关联性NONE的列不喜欢一个存储类而不喜欢另一个存储类,并且不将来自一个存储类的数据说服到另一个存储类。 |
SQLite的Afinity类型名称
以下是可以在创建的SQLite表中使用的各种数据类型的名称的列表。
数据类型 | 相应的Afinity |
---|---|
INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 | INTEGER |
CHARACTER(20)VARCHAR(255)可变字符(255)NCHAR(55)本地字符(70)NVARCHAR(100)TEXT CLOB | TEXT |
BLOB no datatype specified | 没有 |
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(真)。
评论前必须登录!
注册