×
SQLite 教程SQLite 简介SQLite 安装SQLite 命令SQLite 语法SQLite 数据类型SQLite 创建数据库SQLite 附加数据库SQLite 分离数据库SQLite 创建表SQLite 删除表SQLite Insert 语句SQLite Select 语句SQLite 运算符SQLite 表达式SQLite Where 子句SQLite AND/OR 运算符SQLite Update 语句SQLite Delete 语句SQLite Like 子句SQLite Glob 子句SQLite Limit 子句SQLite Order BySQLite Group BySQLite Having 子句SQLite Distinct 关键字

SQLite 高级教程

SQLite PRAGMASQLite 约束SQLite JoinsSQLite Unions 子句SQLite NULL 值SQLite 别名SQLite 触发器SQLite 索引SQLite Indexed BySQLite Alter 命令SQLite Truncate TableSQLite 视图SQLite 事务SQLite 子查询SQLite AutoincrementSQLite 注入SQLite ExplainSQLite VacuumSQLite 日期 & 时间SQLite 常用函数

SQLite 接口

SQLite – C/C++SQLite – JavaSQLite – PHPSQLite – PerlSQLite – Python

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值是一个 blob 数据,完全根据它的输入存储。

SQLite 的存储类稍微比数据类型更普遍。INTEGER 存储类,例如,包含 6 种不同的不同长度的整数数据类型。

SQLite Affinity 类型

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

Affinity描述
TEXT该列使用存储类 NULL、TEXT 或 BLOB 存储所有数据。
NUMERIC该列可以包含使用所有五个存储类的值。
INTEGER与带有 NUMERIC affinity 的列相同,在 CAST 表达式中带有异常。
REAL与带有 NUMERIC affinity 的列相似,不同的是,它会强制把整数值转换为浮点表示。
NONE带有 affinity NONE 的列,不会优先使用哪个存储类,也不会尝试把数据从一个存储类强制转换为另一个存储类。

SQLite Affinity 及类型名称

下表列出了当创建 SQLite3 表时可使用的各种数据类型名称,同时也显示了相应的应用 Affinity:

数据类型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)

  • TEXT

  • CLOB

TEXT
  • BLOB

  • no datatype specified

NONE
  • REAL

  • DOUBLE

  • DOUBLE PRECISION

  • FLOAT

REAL
  • NUMERIC

  • DECIMAL(10,5)

  • BOOLEAN

  • DATE

  • DATETIME

NUMERIC

Boolean 数据类型

SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(false)和 1(true)。

Date 与 Time 数据类型

SQLite 没有一个单独的用于存储日期和/或时间的存储类,但 SQLite 能够把日期和时间存储为 TEXT、REAL 或 INTEGER 值。

存储类日期格式
TEXT格式为 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。
REAL从公元前 4714 年 11 月 24 日格林尼治时间的正午开始算起的天数。
INTEGER从 1970-01-01 00:00:00 UTC 算起的秒数。

您可以以任何上述格式来存储日期和时间,并且可以使用内置的日期和时间函数来自由转换不同格式。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)