Android開發:第四日——SQLite初接觸

1、SQLite 介紹

  SQLite一個很是流行的輕量級嵌入式數據庫,SQLite支持多數的SQL92標準,在一些場合下其性能優於MySql等數據庫引擎,而且只利用不多的內存就有很好的性能。此外它仍是開源的,任何人均可以使用它。許多開源項目((Mozilla, PHP, Python)都使用了 SQLite. SQLite並不像Oracle、MySQL數據庫那樣須要安裝、啓動服務器進程,SQLite數據庫只是一個文件。android

  SQLite是一種嵌入到應用程序中的數據庫,包含表在內的全部數據都存放在單個文件中,這些特性都很是適合於移動平臺下的數據處理。程序員

  SQLite 和其餘數據庫最大的不一樣就是對數據類型的支持,建立一個表時,能夠在 CREATE TABLE 語句中指定某列的數據類型,可是你能夠把任何數據類型放入任何列中。當某個值插入數據庫時,SQLite 將檢查它的類型。若是該類型與關聯的列不匹配,則 SQLite 會嘗試將該值轉換成該列的類型。若是不能轉換,則該值將做爲其自己具備的類型存儲。好比能夠把一個字符串(String)放入 INTEGER 列。SQLite 稱這爲「弱類型」(manifest typing.)。web

  可是,SQLite 不支持一些標準的 SQL 功能,特別是外鍵約束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 還有一些 ALTER TABLE 功能。
  除了上述功能外,SQLite 是一個完整的 SQL 系統,擁有完整的觸發器,交易等等。

2、Android下的SQLite介紹

  Android 在運行時(run-time)集成了 SQLite,因此每一個 Android 應用程序均可以使用 SQLite 數據庫。對於熟悉 SQL 的開發人員來時,在 Android開發 中使用 SQLite 至關簡單。可是,因爲 JDBC 會消耗太多的系統資源,因此 JDBC 對於手機這種內存受限設備來講並不合適。所以,Android 提供了一些新的 API 來使用 SQLite 數據庫,Android 開發中,程序員須要學使用這些 API。
  數據庫通常默認存儲在 data/< 項目文件夾 >/databases/ 下,固然也能夠放置在SD卡上。這裏還分兩種狀況,一種是程序首次啓動時自行建立數據庫,另外一種是把本身設計好的數據庫打包到程序中,在首次啓動時複製到相應位置,這些後面再專門開貼討論。
連接:暫無,待開貼補充
  已經設計好的數據庫文件能夠選擇放到assets中(固然大家也能夠放到raw裏 ),這樣程序在打包時會原封不動的保存到apk包中,不會被編譯成二進制。早期android2.3之前的版本有着assets和raw裏資源文件不能超過1M的限制,固然如今已經沒有這個限制了。

3、SQLite數據類型(datatype)和存儲類型(storage class)

存儲在SQLite數據庫中的數據屬於下面這些存儲類別之一:數據庫

  1. NULL:值爲NULL
  2. INTEGER:有符號整形,根據值的大小以一、二、三、四、6或8字節存儲
  3. REAL:浮點類型,以8字節IEEE浮點數存儲
  4. TEXT:文本字符串,使用數據庫編碼(UTF-八、UTF-16BE或者UTF-16LE)存儲
  5. BLOB:二進制數據塊,徹底按照輸入存放(即沒有轉換)

  存儲類別比數據類型更通常化(general)。好比INTEGER,它包含6種不一樣長度的整數(integer)數據類型,它們在磁盤存儲上存在差別(This makes a difference on disk)。可是隻要INTEGER數據從磁盤讀入到內存進行處理,它們就會被轉換成最普通的8字節有符號整數(integer)數據類型。服務器

  SQLite3數據庫中的任何列(除了整形主鍵(INTEGER PRIMARY KEY)列),能夠用於存儲任何一個存儲類別的值。SQL語句中的全部值(value),不管是嵌入在SQL語句中,或者做爲參數綁定到一個預編譯SQL語句,它們都有一個隱式的存儲類別。在下述狀況下,數據庫引擎會在查詢執行過程當中在數值(numeric)存儲類別(INTEGER和REAL)和TEXT存儲類別之間轉換。app

 ------------------------------------性能

開篇就到這裏了,本身仍是一個初學者,有幾年沒有努力了,埋頭學習去。。。待續學習

 

------------------------------------------------------------------------------------------ui

做者:龐輝編碼

出處:http://www.cnblogs.com/pang123hui/

本文基於署名 2.5 中國大陸許可協議發佈,歡迎轉載,演繹或用於商業目的,可是必須保留本文的署名龐輝(包含連接).

------------------------------------------------------------------------------------------

相關文章
相關標籤/搜索