SQLite 数据类型

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 值为数据的blob,存储方式与输入方式完全相同。

SQLite存储类比数据类型略为广泛。例如,INTEGER存储类包括6种不同长度的整数数据类型。

SQLite Affinity类型

SQLite支持列的Affinity概念。 类型Affinity性 。任何列仍然可以存储任何类型的数据,但列的首选存储类称为它的 Affinity性 。在SQLite3数据库中,每个表列被分配以下类型Affinity性之一−

序号 Affinity与描述
1 TEXT 此列使用NULL、TEXT或BLOB存储类存储所有数据。
2 NUMERIC 此列可以包含使用所有五个存储类的值。
3 INTEGER 与具有NUMERICAffinity性的列相同,但在CAST表达式中有一个例外。
4 REAL 与具有NUMERICAffinity性的列相同,但强制将整数值转换为浮点表示。
5 NONE 具有Affinity性为NONE的列不偏好一种存储类别,也不尝试将数据从一种存储类别转换为另一种。

SQLite Affinity性和类型名称

以下表格列出了可以在创建SQLite3表时使用的各种数据类型名称,以及相应的Affinity性应用。

Data Type Affinity
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)
TEXTCLOB
TEXT
BLOB
no datatype specified
NONE
REAL
DOUBLE
DOUBLE PRECISION
FLOAT
REAL
NUMERIC
DECIMAL(10,5)
BOOLEAN
DATE
DATETIME
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以来的秒数

您可以选择以任何这些格式存储日期和时间,并可以使用内置的日期和时间函数自由地在各个格式之间进行转换。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程