2015-04-16 16 views
-3

我是Android開發人員。我想在SQLite3上創建一個表,並且我想要一個布爾類型的列。我可以定義一個列,類型是整數,值只使用0和1.我也可以使用一個類型爲text(char)的列,並使用值'T','F'。哪一個更小更快?我應該在sqlite3上使用整數或文本

+0

「INTEGER。該值存儲在1,2,3,4,6,或8個取決於值的大小字節的帶符號的整數,」。我想用1個字節來存儲BOOL並不算太壞 –

+0

非常感謝。但是如果我使用文本類型,它將被存儲爲UTF-8文本,'T'和'F'是ascii字符,也會使用一個字節,不是嗎? – user3717061

+1

@DerGolem UTF-8每個ASCII字符使用一個字節。正如你可以在[documentation](http://www.sqlite.org/fileformat2.html#record_format)中看到的,整數0和1使用*零*字節(這些值是用串行類型處理的)。 –

回答

3

,因爲這是在官方的文檔建議您應該使用整數,

SQLite沒有一個單獨的布爾存儲類。相反,布爾值被存儲爲整數0(假)和1(真)。

See Docs

+0

謝謝,我明白了。 – user3717061

+0

@ user3717061我很高興它幫助,如果我的答案幫助你可以將其標記爲公認的答案.. – aProgrammer

相關問題