成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

聊聊Node項目中怎么操作MySQL

Node項目中怎么操作MySQL?下面本篇文章就來給大家聊聊SQL管理數據庫的幾個語句,并介紹一下在Express項目中操作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中的數據

具體的安裝教程,可以參考一下我之前的文章:MySQL的安裝 。有了可視化工具,我們創建表和編輯表的數據就變得異常容易了。

聊聊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('數據刪除成功!');   } })
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产成人亚洲精品另类动态| 国产老妇伦国产熟女老妇久| 国产成人无码AA精品一区| 国产乱人伦偷精品视频免下载| 国产熟妇一区二区三区AⅤ在线 | 色狠狠色噜噜AV综合五区| 色悠久久久久综合网国产| 午夜无码无遮挡在线视频| 亚洲乱色熟女一区二区三区麻豆| 又爽又黄又无遮挡网站| JAPANESE丰满人妻HD| 国产CHINESE男男GAYGAY网站| 国精产品一品二品国精日本| 久久久亚洲熟妇熟女| 欧美极品小妇另类xXXX性| 少妇一级无码精品| 亚洲AV永久无码老湿机漫画| 在线欧美精品一区二区三区| 把腿张开我要cao死你在线观看| 国产A国产片国产| 精品国产一区二区三区吸毒| 蜜臀久久99精品久久久久久小说 | 大陆老太XXXXXHD| 国产午夜激无码AV片在线观看 | 夜夜澡人摸人人添人人看| ⅩXXⅩ内射意大利老妇| 国产高潮视频在线观看| 久久国产精品二国产精品| 欧美性受XXXX白人性爽| 无码视频免费一区二三区| 永久免费男同AV无码入口| 成 人 网 站 在线 看 免费| 国产在线无码视频一区二区三区| 妺妺窝人体色77777791| 天天做天天爱夜夜爽| 亚洲一区二区三区在线网址| 成 人 黄 色 视 频网址大全| 好爽好大再深点高H免费观看| 免费无码又爽又刺激高潮的动态图 | 亚洲成在人线AV| AV无码精品一区二区三区四区| 国产精品久久久久一区二区三区| 久久理伦片琪琪电影院| 日日碰狠狠添天天爽| 亚洲日韩精品无码一区二区三区| 把腿张开让老子臊烂你的动漫视频 | 小12国产萝裸体视频福利| 42岁女子经历20天断崖式衰老| 国产精品Ⅴ无码大片在线看| 蜜桃AV一区二区| 小SAO货撅起屁股扒开GIF动| AV 无码 在线 观看| 国产又黄又大又粗的视频| 欧美一区二区三区成人片在线| 亚洲AV无码秘 蜜桃牛牛| WWW.亚洲精品色情AⅤ色戒| 娇妻被黑人调教成公厕| 日韩精品一区二区三区乱码79| 亚洲午夜无码毛片Av| 国产AV成人一区二区三区| 毛片内射久久久一区| 午夜伦伦电影理论片大片| 99偷拍视频精品一区二区| 娇妻出轨哀求高潮喷水| 日韩一区二区三区精品视频| 亚洲伊人情人综合网站| 国产成人涩涩涩视频在线观看| 男女猛烈无遮挡免费视频| 亚洲AV无码一期二期三期少妇 | 伊人久久大香线蕉AV网| 国产精品久久久天天影视香蕉| 欧美FREESEX黑人又粗又大| 亚洲国产成人精品无码区在线| 成人无遮挡裸免费视频在线观看| 久久熟妇人妻午夜寂寞影院| 吸头AXYGEN日本| 成熟人妻换╳╳╳╳Ⅹ| 妺妺窝人体色www免费看| 亚洲第一无码AV播放器下载| 国产Chinese男男GayGay网站| 欧美成人精品欧美一级乱黄| 亚洲日韩中文无码久久| 国产清纯白嫩初高生在线观看| 日本欧美一区二区三区乱码 | 嫩小槡BBBB槡BBBB槡| 亚洲高清毛片一区二区| 国产CHINESE中国HDXXXX| 趴下老子要从后面CAO你| 有码中文AV无码中文AV| 娇妻呻吟黑人又粗又大视频| 玩弄人妻少妇精品视频| 成人一区二区三区视频在线观看| 男吃乳尖玩奶头高潮视频| 亚洲日韩中文字幕无码专区| 国产亚洲欧美在线专区| 天堂AV无码大芭蕉伊人AV孕妇| 啊灬啊灬啊灬快灬深高潮了亚洲乱色视频在线观看 | 粗一硬一长一进一爽一A级| 欧美日韩一区二区三区在线观看视| 伊人久久大香线焦AV综合影院| 极品人妻被黑人中出种子| 西方137大但人文艺术| 国产成人综合久久久久久| 日韩AV无码成人无码免费| H漫全彩纯肉无码网站| 免费无码成人AV片在线| 尤物精品国产第一福利网站| 久久精品国产亚洲AV麻豆小说| 亚洲国产AⅤ精品一区二区蜜桃| 国产午夜福利在线播放| 无人区卡一卡二卡三乱码入口| 国产CHINESEHDXXXX宾馆TUBE| 日日狠狠久久偷偷四色综合免费 | 白丝制服被啪到喷水很黄很暴力| 男男19禁啪啪无遮挡免费 | 嗯~啊哈好深好骚啊哼| 人妻无码少妇一区二区| GAY欧美猛男巨大FUCKIN| 欧美精品色婷婷五月综合| 19782美国农场主的三个女儿| 老头巨大挺进莹莹的体内免费视频| 亚洲最大成人网站| 久久久久久久99精品国产片| 亚洲已满18点击进入在线看片| 九九久久亚洲AV东方伊甸园| 亚洲日韩AV一区二区三区四区 | 人妻系列无码专区免费视频| JAPANESETUBE日本护| 欧洲-级毛片内射| АⅤ资源天堂资源库在线| 人妻熟妇乱又伦精品视频| 班长哭着说不能再C了视频 | 日韩精品一区二区三区影院 | AV网站免费线看精品| 青草伊人久久综在合线亚洲| 把腿张开自慰给我看| 肉蒲团之极乐宝鉴| 国产成人午夜精品影院| 小12箩利洗澡无码视频网站| 国内精品久久久久影院日本| 亚洲国产精品久久久久婷婷图片 | 无码午夜成人1000部免费视频| 国产人澡人澡澡澡人碰视| 亚洲VA在线∨A天堂VA欧美V| 久久国产免费直播| 曰本BBWW高潮BBWR| 欧美精品第1页WWW| 车上震动A级作爱视频| 偷窥熟女大屁股对白视频| 国产亚洲AV人片在线观看| 亚洲乱码国产一区三区| 狼人大香伊蕉国产WWW亚洲| 9色国产深夜内射| 日韩综合亚洲色在线影院| 国产精品久久久久9999| 亚洲成AV人片在WWW色猫咪| 久久婷婷五月综合色欧美| 99久久99久久久精品齐齐综合 | 国产好爽…又高潮了毛片| 亚洲AV无码精品色夜午夜网址 | 精品久久无码中文字幕| 中文无码字幕中文有码字幕| 欧洲老妇做爰XXXⅩ性活电影| 高潮又爽又黄又无遮挡动态图| 亚洲AV日韩AⅤ无码色老头| 久久成人国产精品免费软件| 69美女ⅩXXXXXXX19| 色欲国产麻豆一精品一AV一免费 | 中文字幕丝袜人妻制服丝袜在线| 人妻熟妇久久久久久XXX| 国产精华液一线二线三线 | 精品日韩亚洲AV无码| 中日AV乱码一区二区三区乱码| 人妻有码中文字幕| 国产精品无码无片在线观看 | 妺妺窝人体色www聚色窝欢迎| 成人做爰高潮A片免费视频| 亚洲AV成人片无码网站网一区 | Chinese老女人老熟妇69| 色悠久久久久综合网伊| 娇喘连连抽搐高潮小说| 99热成人精品热久久6| 同学故意把我的校服当抹布用作文 | 欧美肉欲XXⅩOOO性| 国产精品无码久久久久| 在线无码一区二区| 熟妇大屁股一区二区三区视频| 精品无码国产自产拍在线观看蜜| HD极品FREE性XXⅩ护士I| 香蕉久久夜色精品国产| 妺妺窝人体色777777换脸| 国产精品国产三级国产普通话 | 国产精品麻花传媒二三区别| 一夲道无码人妻精品一区二区| 日韩精品东京热无码视频 | 国产精品白丝JK白祙喷水视频| 一区二区三区欧美| 四虎永久在线精品国产馆V视影院| 久久国产精品99久久人人澡| 成人国产欧美大片一区|