Sqlite 简明教程
SQLite - Data Type
SQLite 数据类型是一种属性,用于指定任何对象的类型。SQLite 中的每一列、变量和表达式都具有相关的数据类型。
在创建表时会使用这些数据类型。SQLite 使用一个更通用的动态类型系统。在 SQLite 中,一个值的数据类型与其自身关联,而不仅仅与其容器相关联。
SQLite Storage Classes
存储在 SQLite 数据库中的每个值都具有以下存储类之一 −
Sr.No. |
Storage Class & Description |
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 Affinity Type
SQLite 支持{@s1}在列上的概念。任何列仍然可以存储任何类型的数据,但是列的首选存储类被称作其{@s2}。SQLite3 数据库中的每一张表都被分配以下类型关联中的一个 −
Sr.No. |
Affinity & Description |
1 |
TEXT 此列使用存储类 NULL、TEXT 或 BLOB 存储所有数据。 |
2 |
NUMERIC 此列可以使用所有五个存储类来包含值。 |
3 |
INTEGER 与 NUMERIC 关联的列的行为类似,在 CAST 表达式中除外。 |
4 |
REAL 与 NUMERIC 关联的列的行为类似,但它会强行将整数的值转换为浮点数表示。 |
5 |
NONE 关联为 NONE 的列不会优先考虑某种存储类,也不会尝试将数据从一种存储类强制转换为另一种存储类。 |
SQLite Affinity and Type Names
下表列出了在使用相应的应用关联创建 SQLite3 时可用于创建 SQLite3 数据库的各种数据类型名称。
Data Type |
Affinity |
INTINTEGERTINYINTSMALLINTMEDIUMINTBIGINTUNSIGNED BIG INTINT2INT8 |
INTEGER |
CHARACTER(20)VARCHAR(255)VARYING CHARACTER(255)NCHAR(55)NATIVE CHARACTER(70)NVARCHAR(100)TEXTCLOB |
TEXT |
BLOBno datatype specified |
NONE |
REALDOUBLEDOUBLE PRECISIONFLOAT |
REAL |
NUMERICDECIMAL(10,5)BOOLEANDATEDATETIME |
NUMERIC |