數據庫與身份認證
目錄
數據庫與身份認證
十三、數據庫的基本概念
13.1 什么是數據庫
13.2 常見的數據庫及分類
13.3 傳統型數據庫的數據組織結構
1. Excel 的數據組織結構
2. 傳統型數據庫的數據組織結構
3. 實際開發中庫、表、行、字段的關系
十四、安裝并配置MySQL
14.1 了解需要安裝哪些MySQL相關的軟件
14.2 MySQL 在 Mac 環境下的安裝
14.3 MySQL在 Windows 環境下的安裝
十五、MySQL的基本使用
15.1 使用MySQL Workbench管理數據庫
1. 連接數據庫
2. 了解主界面的組成部分
3. 創建數據庫
4. 創建數據表
?編輯
5. 向表中寫入數據
15.2 使用SQL管理數據庫
1. 什么是SQL
2. SQL能做什么
3. SQL的學習目標
15.3 SQL的SELECT語句
1. 語法
2. SELECT * 示例
3. SELECT 列名稱 示例
15.4 SQL的 INSERT INTO 語句
1. 語法
2. INSERT INTO 示例
15.5 SQL 的 UPDATE 語句
1. 語法
2. UPDATE示例 - 更新某一行中的一 個列
3. UPDATE示例 - 更新某一行中的若干列
15.6 SQL 的 DELETE 語句
1. 語法
2. DELETE示例
15.7 SQL 的 WHERE 子句
1. 語法
2. 可在 WHERE 子句中使用的運算符
3. WHERE 子句示例
15.8 SQL 的 AND 和 OR 運算符
1. 語法
2. AND 運算符示例
3. OR 運算符示例
15.9 SQL 的 ORDER BY 子句
1. 語法
2. ORDER BY 子句 - 升序排序
3. ORDER BY 子句 - 降序排序
4. ORDER BY 子句 - 多重排序
15.10 SQL 的 COUNT(*) 函數
1. 語法
2. COUNT(*) 示例
2. 使用 AS 為列設置別名
十六、在項目中操作MySQL
16.1 在項目中操作數據庫的步驟
16.2 安裝與配置 mysql 模塊
1. 安裝 mysql 模塊
2. 配置 mysql 模塊
3. 測試 mysql 模塊能否正常工作
16.3 使用 mysql 模塊操作 MySQL 數據庫
1. 查詢數據
2. 插入數據
3. 插入數據的便捷方式
4. 更新數據
5. 更新數據的便捷方式
6. 刪除數據
7. 標記刪除
十七、前后端的身份認證
17.1 Web 開發模式
1. 服務端渲染的 Web 開發模式
2. 服務端渲染的優缺點
3. 前后端分離的 Web 開發模式
4. 前后端分離的優缺點
5. 如何選擇 Web 開發模式
17.2 身份認證
1. 什么是身份認證
2. 為什么需要身份認證
3. 不同開發模式下的身份認證
17.3 Session認證機制
1. HTTP協議的無狀態性
2. 如何突破HTTP無狀態的限制
3. 什么是Cookie
4. Cookie 在身份認證中的作用
5. Cookie 不具有安全性
6. 提高身份認證的安全性
7. Session 的工作原理
17.4 在 Express 中使用 Session 認證
1. 安裝 express-session 中間件
2. 配置 express-session 中間件
3. 向session中存數據
4. 從session中取數據
5. 清空session
6. 檢驗效果
17.5 JWT認證機制
1. 了解Session認證的局限性
2. 什么是JWT
3. JWT的工作原理
4. JWT的組成部分
5. JWT的三個部分各自代表的含義
6. JWT的使用方式
17.6 在 Express 中使用 JWT
1. 安裝JWT相關的包
2. 導入JWT相關的包
3. 定義secret密鑰
4. 在登錄成功后生成 JWT 字符串
5. 將JWT字符串還原為JSON對象
6. 使用 req.user 獲取用戶信息
7. 捕獲解析JWT失敗后產生的錯誤
十三、數據庫的基本概念
13.1 什么是數據庫
數據庫(database) 是用來組織、存儲和管理數據的倉庫。
當今世界是一個充滿著數據的互聯網世界,充斥著大量的數據。數據的來源有很多,比如出行記錄、消費記錄、瀏覽的網頁、發送的消息等等。除了文本類型的數據,圖像、音樂、聲音都是數據。
為了方便管理互聯網世界中的數據,就有了數據庫管理系統的概念(簡稱:數據庫)。用戶可以對數據庫中的數據進行新增、查詢、更新、刪除等操作。
13.2 常見的數據庫及分類
市面上的數據庫有很多種,最常見的數據庫有如下幾個:
- MySQL 數據庫(目前使用最廣泛、流行度最高的開源免費數據庫;Community + Enterprise)
- Oracle數據庫(收費)
- SQL Server數據庫(收費)
- Mongodb數據庫(Community + Enterprise)
其中,MySQL、Oracle、 SQL Server屬于傳統型數據庫(又叫做:關系型數據庫或SQL數據庫),這三者的設計理念相同,用法比較類似。
而Mongodb屬于新型數據庫(又叫做:非關系型數據庫或NoSQL數據庫),它在一定程度上彌補了傳統型數據庫的缺陷。
13.3 傳統型數據庫的數據組織結構
數據的組織結構:指的就是數據以什么樣的結構進行存儲。
傳統型數據庫的數據組織結構,與Excel中數據的組織結構比較類似。
因此,我們可以對比著Excel來了解和學習傳統型數據庫的數據組織結構。
1. Excel 的數據組織結構
每個Excel中,數據的組織結構分別為工作簿、工作表、數據行、列這4大部分組成。
①整個Excel叫做工作簿
②users 和books是工作表
③users 工作表中有3行數據
④每行數據由6列信息組成
⑤每列信息都有對應的數據類型
2. 傳統型數據庫的數據組織結構
在傳統型數據庫中,數據的組織結構分為數據庫(database)、數據表(table)、 數據行(row)、 字段(field) 這4大部分組成。
①數據庫類似于 Excel的工作簿
②數據表類似于Excel的工作表
③數據行類似于 Excel的每一行數據
④字段類似于Excel的列
⑤每個字段都有對應的數據類型
3. 實際開發中庫、表、行、字段的關系
①在實際項目開發中,一般情況下,每個項目都對應獨立的數據庫。
②不同的數據,要存儲到數據庫的不同表中,例如:用戶數據存儲到 users 表中,圖書數據存儲到books表中。
③每個表中具體存儲哪些信息,由字段來決定,例如:我們可以為 users 表設計 id 、username、 password 這3個字段。
④表中的行,代表每一條具體的數據。
十四、安裝并配置MySQL
14.1 了解需要安裝哪些MySQL相關的軟件
對于開發人員來說,只需要安裝 MySQL Server 和 MySQL Workbench 這兩個軟件,就能滿足開發的需要了。
- MySQL Server:專門用來提供數據存儲和服務的軟件。
- MySQL Workbench:可視化的MySQL管理工具,通過它,可以方便的操作存儲在MySQL Server中的數據。
14.2 MySQL 在 Mac 環境下的安裝
在Mac環境下安裝MySQL的過程比Windows環境下的步驟簡單很多:
①先運行mysql-8.0.19-macos10.15-x86 64.dmg這個安裝包,將MySQL Server安裝到Mac系統
②再運行mysql-workbench-community- 8.0.19-macos-x86 _64.dmg這個安裝包,將可視化的MySQL Workbench工具安裝到Mac系統
14.3 MySQL在 Windows 環境下的安裝
在Windows環境下安裝MySQL,只需要運行mysql-installer-community-8.0.19.0.msi這個安裝包,就能一次性將MySQL Server和MySQL Workbench安裝到自己的電腦上。
十五、MySQL的基本使用
15.1 使用MySQL Workbench管理數據庫
1. 連接數據庫
2. 了解主界面的組成部分
3. 創建數據庫
4. 創建數據表
DataType數據類型::
① int 整數
② varchar(len) 字符串
③ tinyint(1) 布爾值
字段的特殊標識:
①PK (PrimaryKey) 主鍵、唯一標識
②NN(Not Null)值不允許為空
③UQ (Unique) 值唯一
④Al (Auto Increment)值自動增長
5. 向表中寫入數據
15.2 使用SQL管理數據庫
1. 什么是SQL
SQL (英文全稱:Structured Query Language)是結構化查詢語言,專[用來訪問和處理數據庫的編程語言。能夠讓我們以編程的形式,操作數據庫里面的數據。
三個關鍵點:
①SQL是一門數據庫編程語言
②使用SQL語言編寫出來的代碼,叫做SQL語句
③SQL語言只能在關系型數據庫中使用(例如MySQL、Oracle、 SQL Server)。非關系型數據庫(例如Mongodb)不支持SQL語言
2. SQL能做什么
①從數據庫中查詢數據
②向數據庫中插入新的數據
③更新數據庫中的數據
④從數據庫刪除數據
⑤可以創建新數據庫
⑥可在數據庫中創建新表
⑦可在數據庫中創建存儲過程、視圖
⑧etc...
3. SQL的學習目標
重點掌握如何使用SQL從數據表中:
查詢數據(select) 、插入數據(insert into)、 更新數據(update) 、刪除數據(delete)
額外需要掌握的4種SQL語法:
where條件、and 和or運算符、order by排序、count(*) 函數
15.3 SQL的SELECT語句
1. 語法
SELECT語句用于從表中查詢數據。執行的結果被存儲在一個結果表中 (稱為結果集)。語法格式如下:
注意:SQL語句中的關鍵字對大小寫不敏感。SELECT等效于select,FROM等效于from。
2. SELECT * 示例
我們希望從 users 表中選取所有的列,可以使用符號*取代列的名稱,示例如下:
3. SELECT 列名稱 示例
如需獲取名為" username "和" password "的列的內容(從名為"users"的數據庫表), 請使用下面的SELECT語句:
15.4 SQL的 INSERT INTO 語句
1. 語法
INSERT INTO 語句用于向數據表中插入新的數據行,語法格式如下:
2. INSERT INTO 示例
向users表中,插入一條 username 為 tony stark, password 為 098123 的用戶數據,示例如下:
15.5 SQL 的 UPDATE 語句
1. 語法
Update語句用于修改表中的數據。語法格式如下:
2. UPDATE示例 - 更新某一行中的一 個列
把 users 表中 id 為 7 的用戶密碼,更新為 888888。示例如下:
3. UPDATE示例 - 更新某一行中的若干列
把 users 表中 id 為 2 的用戶密碼和用戶狀態,分別更新為 admin123 和 1 。示例如下:
15.6 SQL 的 DELETE 語句
1. 語法
DELETE語句用于刪除表中的行。語法格式如下:
2. DELETE示例
從 users 表中,刪除 id 為 4 的用戶,示例如下:
15.7 SQL 的 WHERE 子句
1. 語法
WHERE子句用于