2011-12-07 168 views
9

我對SQLITE相當陌生,我注意到只有4種數據類型,但我在網上看到的例子是人們將自己的數據類型放入其中。我真的不明白這一點,並想知道是否有人可以向我解釋這一點。例如,我看到一列將保存一個日期,並給出的數據類型是不存在的時間戳。它默認是什麼?當你自己創建文本時,它是否默認爲文本?SQLITE自定義數據類型?

回答

14

sqlite3使用動態類型系統。只有五個存儲類: NULL,整數,實數,文本和blob。 (來源:Datatypes In SQLite Version 3

而且,引用該網頁:

在SQLite版本3數據庫的任何列,除了一個INTEGER PRIMARY KEY列,可用於存儲任何存儲類的值。

除了integer primary key異常之外,SQLite根本不執行類型。這意味着您在create table中輸入的類型名稱是純粹的信息。

create table mytab (a apples, b bananas); 

是有效的create table聲明。您可以將時間戳,文本,Blob插入到兩欄(不是說您應該,但可以)。

查看關於類型系統的鏈接參考文檔以獲取更多信息。

sqlite> create table mytab (a apples, b bananas); 
sqlite> insert into mytab values (CURRENT_TIME, NULL); 
sqlite> insert into mytab values ('hello', 3.14159); 
sqlite> select * from mytab; 
14:59:18| 
hello|3.14159 

直接回答你的問題:沒有默認值。存儲類型與存儲在數據庫中的每個值關聯,而不與表中的列關聯。

+0

Thanks Mat,那就是我一直在尋找的東西 – Pittfall