[Android 學習筆記] SQL 與 SQLite 資料庫教學 I
資料庫(Database)係指一種資料的儲存單位,為一些經過組織過的資料集合。資料庫是電腦科學中一個偉大發明,在現今的社會中我們幾乎每天都會使用到資料庫,小至公司的訂便當系統大到量販店的進存貨管理系統等。既然資料庫如此重要,以下我們就開始了解資料庫的應用和基本觀念:一、SQL 資料庫語言
SQL(Structured Query Language)為 ANSI 標準的資料庫語言,可以存取和更新資料庫的記錄資料。
1970 年,E.F. Codd 建立關聯式資料庫的觀念,但並未有完整語法,直到 1974年建立了SQL語言原型,並由 IBM 稍加修改後作為資料庫 DBMS 的資料庫語言,稱為 System R,於 1980年正式誕生 SQL,從此慢慢發展成標準的關聯式資料庫語言。
二、SQLite 資料庫引擎
SQLite 是現在最廣泛使用的免費資料庫引擎,一套實作了 SQL 92 標準的函式庫,不需要管理,也不需要伺服器,也無須安裝設定,不但體積輕巧,而且還是一套支援交易(Transaction)的 SQL 資料庫引擎。
SQLite 內建於 Android 其特點如下:
1. SQLite資料庫只是一個檔案,可以直接使用檔案權限來管理資料庫,而不用自行處理資料庫的使用者權限管理,因此也沒有提供 SQL 語言的 DCL 操作。
2. 單一檔案的 SQLite 資料庫,可以讓 Android 應用程式很容易進行安裝,而且不用特別進行資料庫系統設定與管理。
3. SQLite 不需要啟動,故不會浪費行動裝置記憶體資源。
三、SQL語言的DDL指令
資料定義語言(Data Definition Language,DDL)是建立資料表和定義資料表欄位的相關 SQL 指令。
CREATE TABLE 建立資料表
CREATE TABLE users (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NO NULL,
height REAL NO NULL
)
DROP TABLE 刪除資料表
DROP TABLE 資料表名稱
//先判斷是否存在
DROP TABLE IF EXISTS users
四、SQL語言的DML指令
資料操作語言(Data Manipulation Language,DML)是資料表記錄查詢,插入、刪除和更新的相關SQL指令。此處先說明 SELECT 查詢語法。
//以下表示從資料表選取符合條件的欄位1,2並依排序條件排序
SELECT 欄位1, 欄位2 FROM 資料表
WHERE 條件
ORDER BY 排序條件
五、查詢資料表的全部記錄和欄位
SELECT * FROM users
WHERE 條件查詢子句
SQL 查詢如果是單一條件,在 WHERE 子句條件的基本規則和範例下:
1. 文字欄位需要使用單引號
2. 數值不用單引號
3. 文字和備註欄可以使用LIKE包含運算子,只需要包含此字串即符合條件,再配合”%”或”_”萬用字元,可以代表任何字串或單一字元,只需包含的子字串就符合條件。
4. 數值或是時間日期欄位可以使用<>、>、<、>=、<=來做運算子查詢
ORDER BY 排序子句
可以配合使用ORDER BY來進行排序
SELECT * FROM users
ORDER BY age ASC
// ASC由小到大,DESC由大至小
以上介紹了 SQL和 SQLite 的簡單用法和基本觀念,接下來我們將實際使用 SQLite 應用於 Android 範例開發中。