SQLite 数据类型

2024年11月19日 SQLite 数据类型 极客笔记

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(真)的形式存储。

本文链接:http://so.lmcjl.com/news/18160/

展开阅读全文