SQLite 数据类型
SQLite 使用动态类型系统,允许在创建表时灵活定义数据类型。在 SQLite 中,数据类型与数据本身相关,而不是与列的容器相关,这使得 SQLite 更加灵活。
SQLite 存储类
SQLite 的每个值都有一个存储类,决定它的存储方式。常见的存储类如下:
| 存储类 | 描述 |
|---|---|
| NULL | 值为 NULL |
| INTEGER | 带符号整数,存储为 1、2、3、4、6 或 8 字节 |
| REAL | 浮点数,8 字节 IEEE 浮动点表示 |
| TEXT | 文本字符串,使用 UTF-8、UTF-16 编码存储 |
| BLOB | 二进制数据,按原始数据存储 |
说明:
- INTEGER 存储类支持不同长度的整数类型。
- REAL 存储类使用 IEEE 标准表示浮点数。
SQLite 亲和类型 (Affinity)
SQLite 支持列的亲和类型,即存储时根据数据类型的亲和关系进行转换。SQLite 支持五种亲和类型:
| 亲和类型 | 描述 |
|---|---|
| TEXT | 将数值类型数据转换为文本格式存储。 |
| INTEGER | 类似 NUMERIC 类型,在 CAST 表达式时有区别。 |
| NUMERIC | 如果插入文本数据并且可以转换为 INTEGER 或 REAL 类型,SQLite 会转换;如果无法转换,保留为 TEXT 类型。 |
| REAL | 类似 NUMERIC,但不会将 “30000.0” 转换为 INTEGER。 |
| NONE | 不进行转换,数据直接按原类型存储。 |
常见 SQLite 数据类型与亲和类型
在创建 SQLite 表时,常见的数据类型和其亲和类型如下:
| 数据类型 | 亲和类型 |
|---|---|
| INT, INTEGER, TINYINT, SMALLINT, MEDIUMINT, BIGINT, UNSIGNED BIG INT, INT2, INT8 | INTEGER |
| CHARACTER(n), VARCHAR(n), VARYING CHARACTER(n), NCHAR(n), NVARCHAR(n), TEXT, CLOB | TEXT |
| BLOB | BLOB |
| REAL, DOUBLE, DOUBLE PRECISION, FLOAT | REAL |
| NUMERIC, DECIMAL(p,s), BOOLEAN, DATE, DATETIME | NUMERIC |

最低0.47元/天 解锁文章
4420

被折叠的 条评论
为什么被折叠?



