sqlite 資料型別

2021-06-27 12:49:39 字數 2516 閱讀 3743

一般資料採用固定的靜態資料型別,而sqlite採用的是動態資料型別,會根據存入值自動判斷。

sqlite具有以下五種資料型別:

1.null:空值。

2.integer:帶符號的整型,具體取決有存入數字的範圍大小。

3.real:浮點數字,儲存為8-byte ieee浮點數。

4.text:字串文字。

5.blob:二進位制物件。

但實際上,sqlite3也接受如下的資料型別:

smallint 16 位元的整數。

interger 32 位元的整數。

decimal(p,s) p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。

float  32位元的實數。

double  64位元的實數。

char(n)  n 長度的字串,n不能超過 254。

varchar(n) 長度不固定且其最大長度為 n 的字串,n不能超過 4000。

graphic(n) 和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為了支援兩個字元長度的字型,例如中文字。

vargraphic(n) 可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000

date  包含了 年份、月份、日期。

time  包含了 小時、分鐘、秒。

timestamp 包含了 年、月、日、時、分、秒、千分之一秒。

datetime 包含日期時間格式,必須寫成'2010-08-05'不能寫為'2010-8-5',否則在讀取時會產生錯誤!

sqlite常用資料型別,這句話本身就有問題

因為:sqlite是無型別的. 這意味著你可以儲存任何型別的資料到你所想要儲存的任何表的任何列中, 無論這列宣告的資料型別是什麼(只有自動遞增integer primary key才有用). 

對於sqlite來說對字段不指定型別是完全有效的. 如:

create table ex3(a, b, c);

即使sqlite允許忽略資料型別, 但是仍然建議在你的create table語句中指定資料型別. 因為資料型別對於你和其他的程式設計師交流, 或者你準備換掉你的資料庫引擎是非常有用的. sqlite支援常見的資料型別, 如: 

sql**

create

table

ex2(    

a varchar

(10),    

b nvarchar(15),   

c text,    

d integer

,   

e float

,   

f boolean,    

g clob,    

h blob,    

i timestamp

,   

j numeric

(10,5),    

k varying

character

(24),    

l national

varying

character

(16)   );

char、varchar、text和nchar、nvarchar、ntext的區別

1、char。char儲存定長資料很方便,char欄位上的索引效率級高,比如定義char(10),那麼不論你儲存的資料是否達到了10個位元組,都要占去10個位元組的空間,不足的自動用空格填充。

2、varchar。儲存變長資料,但儲存效率沒有char高。如果乙個字段可能的值是不固定長度的,我們只知道它不可能超過10個字元,把它定義為 varchar(10)是最合算的。varchar型別的實際長度是它的值的實際長度+1。為什麼「+1」呢?這乙個位元組用於儲存實際使用了多大的長度。從空間上考慮,用varchar合適;從效率上考慮,用char合適,關鍵是根據實際情況找到權衡點。

3、text。text儲存可變長度的非unicode資料,最大長度為2^31-1(2,147,483,647)個字元。

4、nchar、nvarchar、ntext。這三種從名字上看比前面三種多了個「n」。它表示儲存的是unicode資料型別的字元。我們知道字元中,英文本元只需要乙個位元組儲存就足夠了,但漢字眾多,需要兩個位元組儲存,英文與漢字同時存在時容易造成混亂,unicode字符集就是為了解決字符集這種不相容的問題而產生的,它所有的字元都用兩個位元組表示,即英文本元也是用兩個位元組表示。nchar、nvarchar的長度是在1到4000之間。和char、varchar比較起來,nchar、nvarchar則最多儲存4000個字元,不論是英文還是漢字;而char、varchar最多能儲存8000個英文,4000個漢字。可以看出使用nchar、nvarchar資料型別時不用擔心輸入的字元是英文還是漢字,較為方便,但在儲存英文時數量上有些損失。  

所以一般來說,如果含有中文字元,用nchar/nvarchar,如果純英文和數字,用char/varchar。

**: 

sqlite資料型別

一般資料採用的固定的靜態資料型別,而sqlite採用的是動態資料型別,會根據存入值自動判斷。sqlite具有以下五種資料型別 1.null 空值。2.integer 帶符號的整型,具體取決有存入數字的範圍大小。3.real 浮點數字,儲存為8 byte ieee浮點數。4.text 字串文字。5.b...

sqlite 資料型別

一般 資料採用固定的靜態資料型別,而sqlite採用的是動態資料型別,會根據存入值自動判斷。sqlite具有以下五種資料型別 1.null 空值。2.integer 帶符號的整型,具體取決有存入數字的範圍大小。3.real 浮點數字,儲存為8 byte ieee浮點數。4.text 字串文字。5.b...

sqlite 資料型別

一般資料採用的固定的靜態資料型別,而sqlite採用的是動態資料型別,會根據存入值自動判斷。sqlite具有以下五種資料型別 1.null 空值。2.integer 帶符號的整型,具體取決有存入數字的範圍大小。3.real 浮點數字,儲存為8 byte ieee浮點數。4.text 字串文字。5.b...