2010-12-15 94 views
42
  1. sqlite3中數據類型INTEGER的最大值是多少?
  2. 如何將IP地址存儲在數據庫中?
  3. 附件是什麼?
  4. 如何使用sql ddl創建屬於特定數據庫的表?
  5. 這個錯誤是關於什麼的?

錯誤,而系統 目錄列表:沒有這樣的表:temp.sqlite_master 無法執行語句SQLite3整數最大值

  1. 是否sqlite3的文本數據類型supoports Unicode的? 謝謝。
+9

不要用無關的附加問題來擴展問題。提出處理具體問題的具體問題並提出新問題。我們不要讓這個線程成爲一個關於sqlite的教程。 – 2010-12-15 09:29:03

回答

6

INTEGER。該值是一個帶符號的 整數,存儲在1,2,3,4,6或8個字節中,取決於值的大小。

INTEGER存儲類,例如 示例,包含6個不同長度的整數 數據類型。這 在磁盤上有所不同。但是,由於 INTEGER值從 磁盤讀取並進入內存進行處理,因此它們被轉換爲最通用的 數據類型(8字節有符號整數)。

http://www.sqlite.org/datatype3.html

除非你有其他的理由不,您使用的文本可以存儲IP地址。

2
  • 如何將IP地址存儲在數據庫中?

最簡單的方法是存儲字符串形式(例如,「127.0.0.1」或「::1」),因爲此時可手動和重新解析,以一個地址結構(如果必須)讀取它們是容易的。 SQLite喜歡字符串(使用TEXT類型)並有效地處理它們。

+1

此外,嘗試將IP地址分解爲其組成部分可能是錯誤的,除非您正在爲ISP工作。 – 2010-12-15 09:21:17

3

關於第二個問題:

您可以通過兩種方式在DB IP地址存儲:

  1. 爲字符串。建議使用 ,因爲它將支持IPv4和 IPv6,並且不需要任何 額外的麻煩,IP地址 轉換。
  2. 作爲一個整數。 IP基本上是4個字節,可以全部合併成一個整數值。但是,你真的想要嗎?在任何需要的時候,這都會給你帶來痛苦的麻煩。
1

sqlite3文本數據類型是否支持 unicode?

是和否。

是的,因爲SQLite允許您以UTF-8或UTF-16格式存儲TEXT數據。 (使用PRAGMA ENCODING選擇內部格式。)

否因爲內置的LOWERUPPER函數隻影響ASCII字符。但您可以redefine functionscollations添加此支持。有一個ICU extension SQLite這樣做。