sqlite讀音 SQLite 資料型別

2021-10-19 22:39:46 字數 2325 閱讀 3300

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 表時可使用的各種資料型別名稱,同時也顯示了相應的親和型別:

資料型別親和型別

intinteger

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

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 算起的秒數。

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

sqlite3使用sqlite2建立的資料庫

用sqlite 2.8.17建立了乙個資料庫heroes.db。其中建立了乙個表heroes,這張表中儲存的是魔獸爭霸中英雄的技能資料。select from heroes 會得到 大魔法師 人族 水元素 暴風雪 輝煌光環 時空傳送 山丘之王 人族 風暴之錘 雷霆一擊 重擊 天神下凡 血魔法師 人族...

SQLite簡介,C 呼叫SQLite

當我們用到海量資料時一般會用oracle,sql server,db2,sybase,mysql等資料庫來儲存和管理資料.如果只是程式中需要儲存少量資料的話直接整到登錄檔裡,或者儲存到乙個xml檔案中.那如果資料量剛好不多不少,用oracle這樣的資料庫有點小題大作,沒有必要.有個xml儲存的話訪問...

SQLite入門一 SQLite概述

學習 掌握一門新的技術通常需要了解這門技術產生的背景,為什麼需要這樣的技術,或者說能夠解決那些問題?sqlite概述 sqlite特性 與其他資料庫比較 使用sqlite解決那些問題 sqlite概述 sqlite資料庫引擎具有獨立 無伺服器端 零配置 支援事務等特點,作為一款優秀的開源嵌入式資料庫...