91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node項目中如何操作MySQL

發布時間:2023-01-13 16:29:48 來源:億速云 閱讀:133 作者:iii 欄目:web開發

這篇文章主要介紹“Node項目中如何操作MySQL”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Node項目中如何操作MySQL”文章能幫助大家解決問題。

數據庫

數據庫(database)是用來組織存儲管理數據的倉庫。當今世界是一個充滿著數據的互聯網世界,充斥著大量的數據。數據的來源有很多,比如出行記錄、消費記錄、瀏覽的網頁、發送的消息等等。除了文本類型的數據,圖像、音樂、聲音都是數據。為了方便管理互聯網世界中的數據,就有了數據庫管理系統的概念(簡稱:數據庫)。用戶可以對數據庫中的數據進行新增、查詢、更新、刪除等操作。

數據庫的分類

MySQL數據庫(目前使用最廣泛、流行度最高的開源免費數據庫;Community + Enterprise)

Oracle數據庫(收費)

SQL Server數據庫 (收費)

Mongodb數據庫(Community + Enterprise)

比較:MySQL、Oracle、SQL Server屬于傳統型數據庫(又叫做:關系型數據庫或SQL數據庫),這三者的設計理念相同,用法比較類似;而MongoDB屬于新型數據庫(又叫做:非關系型數據庫或NoSQL數據庫),它在一定程度上彌補了傳統型數據庫的缺陷。

傳統型數據庫的數據組織結構:在傳統型數據庫中,數據的組織結構分為數據庫(database)、數據表(table)、數據行(row)、字段(field)這4大部分組成。

實際開發中庫、表、行、字段的關系:在實際項目開發中,一般情況下,每個項目都對應獨立的數據庫不同的數據,要存儲到數據庫的不同表中,例如:用戶數據存儲到users 表中,圖書數據存儲到 books表中每個表中具體存儲哪些信息,由字段來決定,例如:我們可以為users 表設計id、username、password這3個字段表中的行,代表每一條具體的數據。

MySQL的安裝與配置

對于開發人員來講,只需安裝 MySQL Server 和 Navicat 這兩個軟件,就能滿足開發需求了。

MySQL Server:專門用來提供數據存儲和服務的軟件

Navicat:可視化的MySQL管理工具,通過它可以方便的操作存儲在 MySQL Server中的數據

有了可視化工具,我們創建表和編輯表的數據就變得異常容易了。

Node項目中如何操作MySQL

Node項目中如何操作MySQL

SQL管理數據庫

SQL(英文全稱:Structured Query Language)是結構化查詢語言,專門用來訪問和處理數據庫的編程語言。能夠讓我們以編程的形式,操作數據庫里面的數據。

注意

1)SQL是一門數據庫編程語言

2)使用 SQL 語言編寫出來的代碼,叫做 SQL 語句

3)SQL語言只能在關系型數據庫中使用(例如:MySQL、Oracle、SQL server)。非關系型數據庫(例如:Mongodb)不支持SQL語言。

SELECT語句

用于從表中查詢數據。執行的結果被存儲在一個結果表中(稱為結果集)。其語法如下:(注意:SQL語句中的關鍵字對大小寫不敏感,SELECT等效于select,FROM等效于from)。

-- 這是注釋
-- 從 FROM 指定的【表中】,查詢出【所有的】數據,* 表示【所有列】
SELECT * FROM 表名稱

-- 從 FROM 指定的【表中】,查詢出指定 列名稱 (字段) 的數據
SELECT 列名稱 FROM 表名稱

Node項目中如何操作MySQL

Node項目中如何操作MySQL

INSERT INTO語句

用于向數據表中插入新的數據行。

-- 向指定表中插入數據,列的值通過 values 一一指定
-- 列和值要一一對應,多個列和多個值之間,要使用英文逗號分隔
insert into table_name (列1,列2...) values (值1,值2,值3)

Node項目中如何操作MySQL

Update語句

用于修改表中的數據

-- 用 UPDATE 指定要更新哪個表中的數據,用 SET 指定列對應的新值,用 WHERE 指定更新的條件
update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值

Node項目中如何操作MySQL

DELETE語句

用于刪除表中的行

-- 從指定的表中,根據 WHERE 條件,刪除對應的數據行
delete from 表名稱 where 列名稱 = 值

Node項目中如何操作MySQL

WHERE子句

用于限定選擇的標準,在SELECT、UPDATE、DELETE語句中,皆可使用WHERE子句來限定選擇的標準。

-- 查詢語句中的 WHERE 條件
select 列名稱 from 表名稱 where 列 運算符 值
-- 更新語句中的 WHERE 條件
update 表名稱 set 列=新值 where 列 運算符 值
-- 刪除語句中的 WHERE 條件
delete from 表名稱 where 列 運算符 值

下面的運算符可在 WHERE 子句中使用,用來限定選擇標準:

操作符描述
=等于
<>(在某些版本的SQL中可以寫為 != )不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某個范圍內
LIKE搜索某種模式

例如:可以通過 WHERE 子句來限定 SELECT 的查詢條件:

-- 查詢 status 為 1 的所有用戶
select * from users where status=1
-- 查詢 id 大于 2 的所有用戶
select * from users where id>2
-- 查詢 username 不等于 admin 的所有用戶
select * from users where username<>'admin'

AND和OR

AND和OR可在WHERE子語句中把兩個或多個條件結合起來。

AND表示必須同時滿足多個條件,相當于JS中的 && 運算符

Node項目中如何操作MySQL

OR表示只要滿足任意一個條件即可,相當于JS中的 || 運算符

Node項目中如何操作MySQL

ORDER BY子句

order by語句用于根據指定的列對結果集進行排序。order by語句默認按照升序對記錄進行排序,如果想按照降序對記錄進行排序,可以使用 DESC 關鍵字。

Node項目中如何操作MySQL

Node項目中如何操作MySQL

Node項目中如何操作MySQL

COUNT(*)函數

COUNT(*)函數用于返回查詢結果的總數據條數,語法格式如下:

Node項目中如何操作MySQL

使用AS為列設置別名:如果希望給查詢出來的列名設置別名,可以使用 AS 關鍵字:

Node項目中如何操作MySQL

在Express項目中操作MySQL

Node項目中如何操作MySQL

安裝操作MySQL數據庫的第三方模塊(mysql)

mysql模塊是托管于npm上的第三方模塊。它提供了在 Node.js項目中連接和操作MySQL數據庫的能力。想要在項目中使用它,需要先運行如下命令,將mysql安裝為項目的依賴包:(注意:如果數據庫是8.0以后的,需安裝mysql2,因為8.0+版本的加密方式改變,node目前還不支持!)【相關教程推薦:nodejs視頻教程、編程教學】

# 我的數據庫是8.0+版本,安裝如下命令即可
npm install mysql2

通過mysql模塊連接到MySQL數據庫

在使用mysql模塊操作 MySQL數據庫之前,必須先對 mysql模塊進行必要的配置,主要的配置步驟如下:

// 導入 mysql 模塊
const mysql = require('mysql2')
// 建立與MySQL數據庫的連接
const db = mysql.createPool({
  host:'127.0.0.1',    // 數據庫的 IP 地址
  port:'3306'          // 數據庫的端口號
  user:'root',         // 登錄數據庫的賬號
  password:'123456',   // 登錄數據庫的密碼
  database:'mysql_test'// 指定要操作哪個數據庫
})

通過mysql模塊執行SQL語句

調用 db.query() 函數,指定要執行的SQL語句,通過回調函數拿到執行的結果:

// 導入 mysql 模塊
const mysql = require('mysql2')
// 建立與MySQL數據庫的連接
const db = mysql.createPool({
  host:'127.0.0.1',    // 數據庫的 IP 地址
  port:'3306',
  user:'root',         // 登錄數據庫的賬號
  password:'123456',   // 登錄數據庫的密碼
  database:'mysql_test'// 指定要操作哪個數據庫
})

// 檢測 mysql 模塊能否正常執行
db.query('select * from users',(err,results)=>{
  if(err) return console.log(err.message);
  // 只要能打印出 [RowDataPacket {'1','1'} ]的結果,就證明數據庫連接正常
  console.log(results);
})

Node項目中如何操作MySQL

向 users 表中新增數據,其中username為張三,password為123000,代碼如下:

// 向數據庫中添加數據
const thing = {username:'hh',password:123000}
// 待執行的SQL語句,其中英文 ? 表示占位符s
// const dataStr = 'insert into users (username,password) values (?,?)'

// 向表中增添數據時,如果數據對象的每個屬性和數據表字段一一對應,則可以通過以下方式簡單快速插入語句
const dataStr = 'insert into users set ?'

// 使用數組形式,為 ? 占位符指定具體的值
// db.query(dataStr,[thing.username,thing.password],(err,results)=>{
  
db.query(dataStr,thing,(err,results)=>{
  if(err) return console.log(err.message); // 失敗
  // 注意:如果執行的是insert into插入語句,則results是一個對象
  // 可以通過affectedRows屬性,來判斷是否插入數據成功
  if(results.affectedRows === 1){
     console.log('數據插入成功!');
  }
})

Node項目中如何操作MySQL

因為 id 具有唯一性,即使你把某條id的記錄刪掉,它的id下一條數據是用不了的,只能自增。

Node項目中如何操作MySQL

更新數據對象,可以通過以下方式進行:

// 向數據庫中更新數據
const thing = {id:3,username:'aaa',password:123000}
// 待執行的SQL語句,其中英文 ? 表示占位符s
const dataStr = 'update users set username=?,password=? where id=?'
// 調用db. query()執行SQL語句的同時,使用數組依次為占位符指定具體的值
db.query(dataStr,[thing.username,thing.password,thing.id],(err,results)=>{
  if(err) return console.log(err.message); // 失敗
  // 可以通過affectedRows屬性,來判斷是否更新數據成功
  if(results.affectedRows === 1){
     console.log('數據更新成功!');
  }
})

Node項目中如何操作MySQL

Node項目中如何操作MySQL

刪除數據時,推薦用唯一標識 id 去刪除。

// 向數據庫中刪除數據
const dataStr = 'delete from users where id=?'
db.query(dataStr,4,(err,results)=>{
  if(err) return console.log(err.message); // 失敗
  // 可以通過affectedRows屬性,來判斷是否刪除數據成功
  if(results.affectedRows === 1){
     console.log('數據刪除成功!');
  }
})

Node項目中如何操作MySQL

標記刪除:使用DELETE語句,會把真正的把數據從表中刪除掉。為了保險起見,推薦使用標記刪除的形式,來模擬刪除的動作。所謂的標記刪除,就是在表中設置類似于status這樣的狀態字段,來標記當前這條數據是否被刪除。當用戶執行了刪除的動作時,我們并沒有執行DELETE語句把數據刪除掉,而是執行了UPDATE語句,將這條數據對應的status字段標記為刪除即可。

// 標記刪除:使用 update 語句來替代 delete 語句,只更新數據的狀態,并沒有真正刪除
const dataStr = 'update users set status=1 where id=?'
db.query(dataStr,11,(err,results)=>{
  if(err) return console.log(err.message); // 失敗
  // 可以通過affectedRows屬性,來判斷是否刪除數據成功
  if(results.affectedRows === 1){
     console.log('數據刪除成功!');
  }
})

關于“Node項目中如何操作MySQL”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夏邑县| 自治县| 沐川县| 徐州市| 通化县| 伊金霍洛旗| 钟山县| 中方县| 唐海县| 三原县| 垦利县| 荔波县| 山阴县| 四平市| 田林县| 辛集市| 江都市| 黄浦区| 东明县| 宜良县| 两当县| 陕西省| 罗江县| 慈利县| 沁阳市| 阜宁县| 昌吉市| 来凤县| 汶上县| 克拉玛依市| 舟曲县| 嘉鱼县| 车致| 南澳县| 金坛市| 虹口区| 车险| 建德市| 达孜县| 浮山县| 苏州市|