SQLite數(shù)據(jù)類型用于指定任何對(duì)象的數(shù)據(jù)類型。 SQLite中的每列,變量和表達(dá)式都有相關(guān)的數(shù)據(jù)類型。 這些數(shù)據(jù)類型在創(chuàng)建表時(shí)使用。 SQLite使用更通用的動(dòng)態(tài)類型系統(tǒng)。 在SQLite中,值的數(shù)據(jù)類型與值本身相關(guān)聯(lián),而不是與其容器相關(guān)聯(lián)。
SQLite存儲(chǔ)類
SQLite數(shù)據(jù)庫中存儲(chǔ)的值是以下存儲(chǔ)類之一:
| 存儲(chǔ)類 | 描述 |
|---|---|
| NULL | 表示值為空(null)值。 |
| INTEGER | 表示值是一個(gè)有符號(hào)整數(shù),根據(jù)值的大小存儲(chǔ)在1,2,3,4,6或8個(gè)字節(jié)中。 |
| REAL | 表示值是一個(gè)浮點(diǎn)值,存儲(chǔ)為8位IEEE浮點(diǎn)數(shù)。 |
| text | 表示值是一個(gè)文本字符串,使用數(shù)據(jù)庫編碼(utf-8,utf-16be或utf-16le)存儲(chǔ) |
| BLOB | 表示值是一個(gè)數(shù)據(jù)塊,與輸入的數(shù)據(jù)完全相同。 |
注意:SQLite存儲(chǔ)類比數(shù)據(jù)類型更通用一些。 例如:
INTEGER存儲(chǔ)類包括不同長度的6種不同的整數(shù)數(shù)據(jù)類型。
SQLite支持列的類型近似性。列可以存儲(chǔ)任何類型的數(shù)據(jù),但是列的首選存儲(chǔ)類稱為它的近似性類型。
在SQLite3數(shù)據(jù)庫中有以下類型近似可用于分配。
| 存儲(chǔ)類 | 描述 |
|---|---|
| TEXT | 此列可使用存儲(chǔ)類為NULL,TEXT或BLOB來存儲(chǔ)所有數(shù)據(jù)。 |
| NUMERIC | 此列可包含使用所有五個(gè)存儲(chǔ)類的值。 |
| INTEGER | 它的行為與帶有轉(zhuǎn)換表達(dá)式異常的具有數(shù)字近似的列相同。 |
| REAL | 它的行為類似于具有數(shù)字近似的列(除了它將整數(shù)值強(qiáng)制以浮點(diǎn)表示) |
| NONE | 具有近似性NONE的列不會(huì)將一個(gè)存儲(chǔ)類轉(zhuǎn)為另一個(gè)存儲(chǔ)類型 |
以下是可以在創(chuàng)建SQLite表時(shí)使用的各種數(shù)據(jù)類型名稱的列表。
| 數(shù)據(jù)類型 | 相應(yīng)的近似類型 |
|---|---|
| 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 - 未指定數(shù)據(jù)類型 | NONE |
| REAL DOUBLE DOUBLE PRECISION FLOAT | REAL |
| NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME | NUMERIC |
在SQLite中,沒有單獨(dú)的類型來存儲(chǔ)日期和時(shí)間。 但是可以將日期和時(shí)間存儲(chǔ)為TEXT,REAL或INTEGER值。
| 存儲(chǔ)類 | 日期格式 |
|---|---|
| TEXT | 它以“yyyy-mm-dd hh:mm:ss.sss” 格式指定日期 |
| REAL | 它規(guī)定了從公元前4714年11月24日在格林威治中午以后的天數(shù)。 |
| INTEGER | 它指定從1970-01-01 00:00:00 utc開始的秒數(shù)。 |
在SQLite中,沒有一個(gè)單獨(dú)的布爾存儲(chǔ)類。一個(gè)代替辦法是將布爾值存儲(chǔ)為整數(shù)0(假)和1(真)。