Node.js(四)之數據庫與身份認證

數據庫與身份認證

目錄

數據庫與身份認證

十三、數據庫的基本概念

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表中,插入一條 usernametony stark, password098123 的用戶數據,示例如下:


 

15.5 SQL 的 UPDATE 語句

1. 語法

Update語句用于修改表中的數據。語法格式如下:


 

2. UPDATE示例 - 更新某一行中的一 個列

把 users 表中 id7 的用戶密碼,更新為 888888。示例如下:


 

3. UPDATE示例 - 更新某一行中的若干列

把 users 表中 id 2 用戶密碼用戶狀態,分別更新為 admin123 1 。示例如下:


 

15.6 SQL 的 DELETE 語句

1. 語法

DELETE語句用于刪除表中的行。語法格式如下:


 

2. DELETE示例

從 users 表中,刪除 id4 的用戶,示例如下:


 

15.7 SQL 的 WHERE 子句

1. 語法

WHERE子句用于

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94383.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94383.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94383.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot+SpringMVC常用注解

文章目錄發展歷程項目創建項目結構入門案例配置文件的兩種方式:只能使用一種創建項目二入門案例常用知識及注解Controller:類上面加,SpringMVC的注解GetMapping:方法上面加Spring框架的兩項核心功能Component:組件。控制反轉,加在業務類上面&…

標準GS相位恢復算法

標準GS相位恢復算法詳解與MATLAB實現 Gerchberg-Saxton (GS) 算法是一種經典的相位恢復方法,廣泛應用于光學成像、衍射成像和全息技術等領域。該算法通過迭代過程從未知相位的強度測量中恢復相位信息。 算法原理 GS算法的核心思想是利用傅里葉變換關系在空間域和頻率…

【Linux網絡編程基礎--socket地址API】

一、主機字節序和網絡字節序主機字節序(Host Byte Order):你當前電腦的內存字節順序(比如 x86 是小端)網絡字節序(Network Byte Order):統一規定為大端序(高位字節在高位…

Linux路徑MTU發現(Path MTU Discovery, PMTU)

Linux路徑MTU發現(Path MTU Discovery, PMTU)機制是TCP/IP協議棧中確保數據包高效傳輸的核心技術。其核心目標是動態探測源主機到目的主機路徑上的最小MTU(Maximum Transmission Unit),從而避免IP分片,提升…

【MySQL進階】------MySQL程序

MySQL程序簡介 MySQL安裝完成通常會包含如下程序: Linux系統程序?般在 /usr/bin?錄下,可以通過命令查看: windows系統?錄:你的安裝路徑\MySQL Server 8.0\bin,可以通過命令查看: 每個 MySQL 程序都有許…

Linux大頁內存導致服務內存不足

Linux大頁內存導致服務內存不足的解決方法 大頁內存(Huge Pages)是Linux內核提供的一種機制,用于減少TLB(轉換后備緩沖區)的壓力,提高內存訪問性能。然而,如果配置不當,大頁內存可能…

超寬帶測距+測角+無線通信一體化模組:智能門鎖、智能遙控器、AR頭戴、智能穿戴

超寬帶測距測角無線通信一體化模組:智能門鎖、智能遙控器、AR頭戴、智能穿戴UWB測距測角技術,因其高精度、低延遲、抗干擾能力,正廣泛應用于“人-物-設備”的空間感知場景,成為構建智能空間和精準互動的重要底層技術。代表廠商與產…

基于單片機空氣質量檢測/氣體檢測系統

傳送門 👉👉👉👉其他作品題目速選一覽表 👉👉👉👉其他作品題目功能速覽 概述 隨著環境污染問題日益嚴重,空氣質量監測成為社會關注的焦點。基于單片機的空氣質量檢…

網絡安全 | 從 0 到 1 了解 WAF:Web 應用防火墻到底是什么?

🤔 寫在前面 2020年 我參加公司的安全技能大賽,隊友在實操環節啟用了 WAF 防火墻,這是我第一次接觸到 Web 應用防火墻。作為一個 Web 開發老鳥,真是羞愧呀😂。 🔐 Web應用防火墻 WAF 全稱是 Web Applica…

服務器突然之間特別卡,什么原因?

原因總結:1.一般是本地網速的問題,服務器網速的問題,服務器CPU被占滿的問題今天發現另一個會導致特別卡的問題,是主存占滿也會導致卡頓。解釋如下:當服務器的主存(物理內存)被完全占滿時&#x…

AI應用標準詳解:A2A MCP AG-UI

"OpenAI接入MCP,Google推出A2A,微軟與OpenAI緊密綁定"標志著云計算競爭焦點已從"算力"和"模型參數"轉向?Agent標準協議控制權?。在AI快速演進的今天,我們不再僅關注單個AI的智能水平,而是探索多個…

Web安全學習步驟

以下是Web安全專項學習步驟,聚焦實戰能力培養,分為4個階段資源清單**,適合從入門到進階。重點培養漏洞挖掘能力與防御方案設計雙重視角:---階段1:Web技術筑基(1-2個月) | 領域 | 關鍵…

Android工程命令行打包并自動生成簽名Apk

1.進入工程目錄查看所有gradle任務 2.打包debug與release 打包前先生成jks簽名文件test.jks 在工程的build.gradle中添加簽名配置 signingConfigs {release {storeFile file("/home/dev/test.jks")storePassword "111111"keyAlias "key0"keyPas…

分布式微服務--Nacos作為配置中心(一)

1.Nacos配置遠程配置中心注意總結:本地配置文件必須使用 bootstrap.yml 或 bootstrap.properties遠程配置的加載優先于 application.yml,因此必須寫在 bootstrap 配置文件中。本地配置文件中 file-extension 的取值僅支持兩種:properties 或 …

Linux安裝MySQL及鏈接第三方工具詳細教程,帶圖帶錯誤分析

本教程所有代碼均為root用戶權限下操作,如果不是root用戶,在代碼前加上(sudo )即可 一、安裝MySQL服務 準備工作: 有時,系統無法解析 部分域名,導致無法獲取鏡像列表,從而無法安裝…

WPS2024 軟件下載及安裝教程!

軟件介紹 WPS Office是一套辦公軟件套裝,包含WPS文字、WPS表格、WPS演示三大功能模塊,可以滿足常用文字處理、表格編輯和演示制作等多種辦公需求,以其強大的功能和用戶友好的界面贏得了眾多用戶的青睞。 軟件:??????WPS Of…

ESD監控系統確保工廠生產設備的靜電安全

隨著電子工業的飛速發展,電子產品的精密程度不斷提高,對生產環境的要求也日益嚴格。在許多電子制造工廠中,安裝和維護有效的靜電防護措施已成為保障生產安全和產品品質的關鍵。ESD監控系統作為靜電管理的核心工具,為確保工廠設備和…

基于react的YAPI實戰指南

基于react的YAPI 示例新增項目擴展遇到的問題&#xff0c;更改頁面內容沒有生效可能遇到的問題新增項目擴展 支持設置項目權限【公開】 <RadioGroup><Radio value"private" className"radio"><Icon type"lock" />私有<br …

docker鏡像源配置教程,以及解決安裝好docker配置鏡像源后,出現報錯。Job for docker.service failed

Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.解決后效果&#xff1a;1、進入/etc/docker目錄cd /etc/docker2、創建daemon.json文件并…

安卓264和265編碼器回調編碼數據寫入文件的方法

一、寫入文件 1、變量定義 private FileOutputStream m265FileOutputStream null; private File m265File null; private static final String HEVC_265_FILE_NAME "output.265"; // 或 .265 private static final String AVC_264_FILE_NAME "output.264&qu…