天天看點

SQLite 資料類型(http://www.w3cschool.cc/sqlite/sqlite-data-types.html)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 概念。任何列仍然可以存儲任何類型的資料,但列的首選存儲類是它的 affinity。在 sqlite3 資料庫中,每個表的列配置設定為以下類型的 affinity 之一:

affinity

該列使用存儲類 null、text 或 blob 存儲所有資料。

numeric

該列可以包含使用所有五個存儲類的值。

與帶有 numeric affinity 的列相同,在 cast 表達式中帶有異常。

與帶有 numeric affinity 的列相似,不同的是,它會強制把整數值轉換為浮點表示。

none

帶有 affinity none 的列,不會優先使用哪個存儲類,也不會嘗試把資料從一個存儲類強制轉換為另一個存儲類。

下表列出了當建立 sqlite3 表時可使用的各種資料類型名稱,同時也顯示了相應的應用 affinity:

資料類型

int

tinyint

smallint

mediumint

bigint

unsigned big int

int2

int8

character(20)

varchar(255)

varying character(255)

nchar(55)

native character(70)

nvarchar(100)

clob

no datatype specified

double

double precision

float

decimal(10,5)

boolean

date

datetime

sqlite 沒有單獨的 boolean 存儲類。相反,布爾值被存儲為整數 0(false)和 1(true)。

sqlite 沒有一個單獨的用于存儲日期和/或時間的存儲類,但 sqlite 能夠把日期和時間存儲為 text、real 或 integer 值。

日期格式

格式為 "yyyy-mm-dd hh:mm:ss.sss" 的日期。

從公元前 4714 年 11 月 24 日格林尼治時間的正午開始算起的天數。

從 1970-01-01 00:00:00 utc 算起的秒數。

您可以以任何上述格式來存儲日期和時間,并且可以使用内置的日期和時間函數來自由轉換不同格式。