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
    该值是一组数据,完全按照输入的方式存储。
    SQLite 存储类比数据类型更通用。例如,INTEGER 存储类包括 6 种不同长度的不同整数数据类型。
  • SQLite 关联类型

    SQLite支持列上的类型关联概念。任何列仍然可以存储任何类型的数据,但列的首选存储类称为其关联。SQLite3数据库中的每个表列都被分配了以下类型关联之一
    序号 亲和力和描述
    1
    TEXT
    此列使用存储类 NULL、TEXT 或 BLOB 存储所有数据。
    2
    NUMERIC
    此列可能包含使用所有五个存储类别的值。
    3
    INTEGER
    行为与具有 NUMERIC 关联的列相同,但在 CAST 表达式中除外。
    4
    REAL
    行为类似于具有 NUMERIC 关联的列,除了它强制整数值转换为浮点表示。
    5
    NONE
    具有亲缘关系 NONE 的列不喜欢一种存储类而不是另一种,并且不会尝试将数据从一种存储类强制转换为另一种存储类。
  • SQLite 关联和类型名称

    下表列出了在创建具有相应应用关联性的 SQLite3 表时可以使用的各种数据类型名称。
    数据类型 关联性
    • 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
    • 没有指定数据类型
    NONE
    • REAL
    • DOUBLE
    • DOUBLE PRECISION
    • FLOAT
    REAL
    • NUMERIC
    • DECIMAL(10,5)
    • BOOLEAN
    • DATE
    • DATETIME
    NUMERIC
  • 布尔数据类型

    SQLite 没有单独的布尔存储类。相反,布尔值存储为整数 0 (false) 和 1 (true)。
  • 日期和时间数据类型

    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 以来的秒数
    您可以选择以任何这些格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换。