2012-03-01 71 views
2

直接取決於SQLite的站點「該值是一個有符號整數,根據值的大小存儲在1,2,3,4,6或8個字節中「。SQLite整數大小:單獨大小或整個組

這是否意味着如果您有1個值需要8個字節,則該列中的所有值將被視爲8個字節。或者,如果其餘全部爲1個字節,並且一個值爲8個字節,那麼只有該值將使用8個字節,其餘的將保持爲1?

我更習慣於在其中指定相應的整數大小的SQL。

我知道這個問題似乎微不足道,但根據答案將決定我如何處理一塊數據庫。

回答

3

sqlite數據庫結構在處理數據類型方面有所不同。每個字段可以有不同的類型......

這裏是源碼的documentation

大多數SQL數據庫引擎使用靜態類型。數據類型與表中的每列 相關聯,並且只有該特定數據類型的值才允許存儲在該列的 列中。 SQLite通過使用清單類型來放寬這個限制。在清單輸入中, 數據類型是該值本身的屬性,而不是存儲值爲 的列的屬性。 SQLite因此允許用戶將任何數據類型的任何值存儲到任何列 中,而不管該列的聲明類型如何。 (有一些例外情況:。 的INTEGER PRIMARY KEY列可僅存儲整數和SQLite試圖何時能強迫 值入列的聲明數據類型)

+0

所以基本上,它適合每個數據類型以整數(如果可以的話)輸入數據類型,並且將使用它可以進行的最小迭代,而不管列中其他條目的大小或類型如何。 – Rhyono 2012-03-01 07:44:16

+0

是的,你甚至可以把字符放在同一列,它會處理它。怪怪的! – jroyce 2012-03-01 07:45:10

+1

我最初讀爲「椅子」(已經晚了)。感謝您的迴應。 – Rhyono 2012-03-01 07:46:54