SQLite數(shù)據(jù)類型是一個(gè)屬性,用于指定任何對(duì)象的數(shù)據(jù)類型。每個(gè)列,變量和表達(dá)式在SQLite中都有相關(guān)的數(shù)據(jù)類型。
您將在創(chuàng)建表時(shí)使用這些數(shù)據(jù)類型。SQLite使用更通用的動(dòng)態(tài)類型系統(tǒng)。在SQLite中,值的數(shù)據(jù)類型與值本身相關(guān)聯(lián),而不是與其容器相關(guān)聯(lián)。
存儲(chǔ)在SQLite數(shù)據(jù)庫中的每個(gè)值都具有以下存儲(chǔ)類別之一-
序號(hào) | 儲(chǔ)存類別和說明 |
---|---|
1 |
該值為NULL值。 |
2 |
該值是一個(gè)有符號(hào)整數(shù),根據(jù)值的大小存儲(chǔ)在1、2、3、4、6或8個(gè)字節(jié)中。 |
3 |
該值是一個(gè)浮點(diǎn)值,存儲(chǔ)為8字節(jié)IEEE浮點(diǎn)數(shù)。 |
4 |
該值是一個(gè)文本字符串,使用數(shù)據(jù)庫編碼(UTF-8,UTF-16BE或UTF-16LE)存儲(chǔ) |
5 |
該值是數(shù)據(jù)的一滴,完全按輸入存儲(chǔ)。 |
SQLite存儲(chǔ)類比數(shù)據(jù)類型更通用。例如,INTEGER存儲(chǔ)類包括6種不同長(zhǎng)度的不同整數(shù)數(shù)據(jù)類型。
SQLite支持列上的類型相似性的概念。 任何列仍然可以存儲(chǔ)任何類型的數(shù)據(jù),但是列的首選存儲(chǔ)類稱為親和力。 SQLite3數(shù)據(jù)庫中的每個(gè)表列都分配了以下類型關(guān)聯(lián)性之一-
序號(hào) | 親和力和描述 |
---|---|
1 |
該列使用存儲(chǔ)類NULL,TEXT或BLOB存儲(chǔ)所有數(shù)據(jù)。 |
2 |
該列可能包含使用所有五個(gè)存儲(chǔ)類的值。 |
3 |
行為與具有NUMERIC相關(guān)性的列相同,但CAST表達(dá)式除外。 |
4 |
行為類似于具有NUMERIC關(guān)聯(lián)性的列,不同之處在于它強(qiáng)制將整數(shù)值轉(zhuǎn)換為浮點(diǎn)表示形式。 |
5 |
親和性為NONE的列不喜歡一個(gè)存儲(chǔ)類別而不是另一個(gè)存儲(chǔ)類別,也沒有嘗試將數(shù)據(jù)從一個(gè)存儲(chǔ)類別強(qiáng)制轉(zhuǎn)換為另一個(gè)存儲(chǔ)類別。 |
下表列出了各種數(shù)據(jù)類型名稱,這些名稱可以在創(chuàng)建具有相應(yīng)應(yīng)用相似性的SQLite3表時(shí)使用。
數(shù)據(jù)類型 | 親和力 |
---|---|
| INTEGER |
| TEXT |
| NONE |
| REAL |
| NUMERIC |
SQLite沒有單獨(dú)的布爾存儲(chǔ)類。而是將布爾值存儲(chǔ)為整數(shù)0(false)和1(true)。
SQLite沒有用于存儲(chǔ)日期和/或時(shí)間的單獨(dú)存儲(chǔ)類,但是SQLite能夠?qū)⑷掌诤蜁r(shí)間存儲(chǔ)為TEXT,REAL或INTEGER值。
序號(hào) | 存儲(chǔ)類別和日期格式 |
---|---|
1 |
日期格式為“ YYYY-MM-DD HH:MM:SS.SSS” |
2 |
公元前4714年11月24日格林威治正午以來的天數(shù)。 |
3 |
自1970-01-01 00:00:00 UTC以來的秒數(shù) |
您可以選擇以這些格式存儲(chǔ)日期和時(shí)間,并使用內(nèi)置的日期和時(shí)間函數(shù)在格式之間自由轉(zhuǎn)換。