閱讀更多系列文章請訪問我的GitHub部落格,示例程式碼請訪問這裡。
資料庫的分類
-
檔案資料庫 它的優點是:資料儲存在單一檔案中,因此部署十分方便,常用來嵌入到APP中儲存資料,以及手機中的簡訊、通話記錄等。
常用的有SQLite、Access等。
-
關係型資料庫 關係型資料庫的功能強大,適用場景豐富,它的特點是資料之間互相是關聯的。
比如淘寶,一個使用者下有個人資訊、訂單資訊、聊天記錄等,可以分別儲存在不同表中,通過使用者ID相互關聯起來。但它的效能不是最強的。
常用的有SQL。
-
分散式資料庫 它的特點是可以安裝在多臺機器上,可以將查詢等操作分散開,合理利用伺服器資源。
還可以將資料設定多個備份,一旦其中一臺伺服器異常,可以由其他伺服器同步資料。
常用的有MongoDB。
-
NoSQL 它只能支援簡單查詢,但效能強於關係型資料庫,常用來做介面、資料快取等。
常用的有MongoDB、Memcached、Redis等。
SQL語句
結構化查詢語言(Structured Query Language)簡稱SQL,它主要用來存取、查詢、更新和管理關聯式資料庫系統。
SQL 分為兩個部分:資料定義語言 (DDL)和資料操作語言 (DML) 。
DDL語句
CREATE DATABASE - 建立新資料庫
ALTER DATABASE - 修改資料庫
CREATE TABLE - 建立新表
ALTER TABLE - 變更(改變)資料庫表
DROP TABLE - 刪除表
CREATE INDEX - 建立索引(搜尋鍵)
DROP INDEX - 刪除索引
DML語句
資料操作語言 (DML) 是最常用的操作,即增刪改查,它包括如下部分:
-
增INSERT INTO - 向資料庫表中插入資料
INSERT INTO <表> (欄位, ...) VALUES(值, ...);
INSERT INTO user_table (username, password) VALUES('lee', '123456');
在user_table表中插入一條資料。
-
刪DELETE - 從資料庫表中刪除資料
DELETE FROM <表> WHERE 條件;
DELETE FROM user_table WHERE ID=2;
刪除user_table表中ID為2的專案。
-
改UPDATE - 更新資料庫表中的資料
UPDATE <表> SET 欄位=新值,欄位=新值,... WHERE 條件;
UPDATE user_table SET password='888888', username='chen' WHERE ID=1;
將user_table表中ID為1的使用者名稱和密碼更新。
-
查SELECT - 從資料庫表中獲取資料
SELECT 欄位列表 FROM <表> WHERE 條件 ORDER BY 欄位 LIMIT 30,30;
SELECT ID FROM user_table WHERE username=‘lee’ ORDER BY ID ASC LIMIT 0,10;
查詢user_table表中username為lee的使用者的ID,取0~10個,按升序排列。
資料庫索引
資料庫的索引需要作用是提高查詢效能,另外還可以對資料進行限制,如限制為“唯一”。
索引的型別有四種,如下:
-
主鍵
具有“唯一”和“索引”的雙重優點。
-
唯一
定義欄位為唯一,即不可重複。
-
索引
優點:提高查詢效能,相當於書的目錄。
缺點:降低增、刪、改的效能,因為這些操作可能會觸發資料庫整理、重建索引。另外,索引也會佔用磁碟空間。
-
全文索引
適合文字搜尋,常用在搜尋引擎中。
下一節將主要介紹如何使用Nodejs運算元據庫