SQLite經典教學課程login
SQLite經典教學課程
作者:php.cn  更新時間:2022-04-13 17:05:02

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 支援列上的類型 affinity 概念。任何列仍然可以儲存任何類型的數據,但列的首選儲存類別是它的 affinity。在SQLite3 資料庫中,每個表格的欄位被指派為下列類型的affinity 之一:

Affinity描述
TEXT此列使用儲存類別NULL、TEXT 或BLOB 儲存所有資料。
NUMERIC此列可以包含使用所有五個儲存類別的值。
INTEGER與帶有 NUMERIC affinity 的欄位相同,在 CAST 表達式中帶有異常。
REAL與有 NUMERIC affinity 的欄位相似,不同的是,它會強制將整數值轉換為浮點表示。
NONE帶有affinity NONE 的列,不會優先使用哪個存儲類,也不會嘗試把資料從一個存儲類強制轉換為另一個存儲類。

SQLite Affinity 及類型名稱

下表列出了當建立SQLite3 表時可使用的各種資料類型名稱,同時也顯示了對應的應用程式Affinity:

INT2##INT8#TEXT
資料型別Affinity
  • INT

  • INTEGER

  • TINYINT

  • SMALLINT

  • MEDIUMINT

  • BIGINT

  • UNSIGNED BIG INT

  • INTEGER
  • #CHARACTER(20)
  • VARCHAR(255 )
  • VARYING CHARACTER(255)
  • NCHAR(55)
NATIVE CHARACTER(70 )
NVARCHAR(100)
  • #TEXT
  • ##CLOB

  • #BLOB
  • no datatype specified
  • NONE
  • #REAL
DOUBLE
DOUBLE PRECISION

FLOAT

REAL

NUMERIC############DECIMAL(10,5)############BOOLEAN######## #####DATE############DATETIME################NUMERIC############## Boolean 資料類型######SQLite 沒有單獨的Boolean 儲存類別。相反,布林值被儲存為整數 0(false)和 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 算起的秒數。 ###############您可以以任何上述格式來儲存日期和時間,並且可以使用內建的日期和時間函數來自由轉換不同格式。 ##########

PHP中文網