SQLite資料型別


SQLite資料型別用於指定任何物件的資料型別。 SQLite中的每列,變數和表示式都有相關的資料型別。 這些資料型別在建立表時使用。 SQLite使用更通用的動態型別系統。 在SQLite中,值的資料型別與值本身相關聯,而不是與其容器相關聯。

SQLite資料型別的型別

SQLite儲存類

SQLite資料庫中儲存的值是以下儲存類之一:

儲存類 描述
NULL 表示值為空(null)值。
INTEGER 表示值是一個有符號整數,根據值的大小儲存在1,2,3,4,68個位元組中。
REAL 表示值是一個浮點值,儲存為8位IEEE浮點數。
text 表示值是一個文字字串,使用資料庫編碼(utf-8utf-16be或utf-16le)儲存
BLOB 表示值是一個資料塊,與輸入的資料完全相同。

注意:SQLite儲存類比資料型別更通用一些。 例如:INTEGER儲存類包括不同長度的6種不同的整數資料型別。

SQLite的近似型別

SQLite支援列的型別近似性。列可以儲存任何型別的資料,但是列的首選儲存類稱為它的近似性型別。

在SQLite3資料庫中有以下型別近似可用於分配。

儲存類 描述
TEXT 此列可使用儲存類為NULLTEXTBLOB來儲存所有資料。
NUMERIC 此列可包含使用所有五個儲存類的值。
INTEGER 它的行為與帶有轉換表示式異常的具有數位近似的列相同。
REAL 它的行為類似於具有數位近似的列(除了它將整數值強制以浮點表示)
NONE 具有近似性NONE的列不會將一個儲存類轉為另一個儲存型別

SQLite近似和型別名稱

以下是可以在建立SQLite表時使用的各種資料型別名稱的列表。

資料型別 相應的近似型別
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中,沒有單獨的型別來儲存日期和時間。 但是可以將日期和時間儲存為TEXT,REAL或INTEGER值。

儲存類 日期格式
TEXT 它以「yyyy-mm-dd hh:mm:ss.sss」 格式指定日期
REAL 它規定了從公元前4714年11月24日在格林威治中午以後的天數。
INTEGER 它指定從1970-01-01 00:00:00 utc開始的秒數。

布林資料型別

在SQLite中,沒有一個單獨的布林儲存類。一個代替辦法是將布林值儲存為整數0(假)和1(真)。