pythonsqlite3数据类型_SQLite数据类型
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⽀持列的亲和类型概念。任何列仍然可以存储任何类型的数据,当数据插⼊时,该字段的数据将会优先采⽤亲缘类型作为该值的存储⽅式。SQLite⽬前的版本⽀持以下五种亲缘类型:
亲和类型描述
TEXT数值型数据在被插⼊之前,需要先被转换为⽂本格式,之后再插⼊到⽬标字段中。
NUMERIC当⽂本数据被插⼊到亲缘性为NUMERIC的字段中时,如果转换操作不会导致数据信息丢失以及完全可逆,那么SQLite就会将该⽂本数据转换为INTEGER或REAL类型的数据,如果转换失败,SQLite仍会以TEXT⽅式存储该数据。对于NULL或BLOB类型的新数
据,SQLite将不做任何转换,直接以NULL或BLOB的⽅式存储该数据。需要额外说明的是,对于浮点格式的常量⽂本,如"30000.0",如果该值可以转换为INTEGER同时⼜不会丢失数值信息,那么SQLite就会将其转换为INTEGER的存储⽅式。
INTEGER对于亲缘类型为INTEGER的字段,其规则等同于NUMERIC,唯⼀差别是在执⾏CAST表达式时。
REAL其规则基本等同于NUMERIC,唯⼀的差别是不会将"30000.0"这样的⽂本数据转换为INTEGER存储⽅式。
NONE不做任何的转换,直接以该数据所属的数据类型进⾏存储。
SQLite 亲和类型(Affinity)及类型名称
下表列出了当创建 SQLite3 表时可使⽤的各种数据类型名称,同时也显⽰了相应的亲和类型:
数据类型亲和类型
INT
INTEGER电疗法
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
INT2
INT8INTEGER
CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOBTEXT
教育格言小学教师
BLOB
土豆肉饼no datatype specifiedNONE
REAL
DOUBLE
DOUBLE PRECISION
FLOATREAL
喝绿茶的好处和坏处NUMERIC
DECIMAL(10,5)
英语作业设计BOOLEAN
DATE
DATETIMENUMERIC
Boolean 数据类型
SQLite 没有单独的 Boolean 存储类。相反,布尔值被存储为整数 0(fal)和 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 算起的秒数。
您可以以任何上述格式来存储⽇期和时间,并且可以使⽤内置的⽇期和时间函数来⾃由转换不同格式。