node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

這篇文章主要介紹“node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些”,在日常操作中,相信很多人在node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

在銅山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都營(yíng)銷網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),銅山網(wǎng)站建設(shè)費(fèi)用合理。

下載安裝mysql,檢查是否安裝成功

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

net start mysql
  • 啟動(dòng)mysql

  • 可在桌面右鍵我的電腦進(jìn)入計(jì)算機(jī)管理查看mysql是否已經(jīng)成功運(yùn)行 

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

下載安裝navicat

功能:為我們提供連接、操作mysql數(shù)據(jù)庫(kù)的功能

安裝

雙擊,一路next

使用

找到應(yīng)用程序,點(diǎn)擊啟動(dòng)

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

如果 連接測(cè)試通過(guò),接下來(lái)就可以點(diǎn)擊確定按鈕,正式連入mysql了。node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

連入后的效果如下:

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

數(shù)據(jù)庫(kù)簡(jiǎn)介

什么是數(shù)據(jù)庫(kù)

英文: database 保存和管理數(shù)據(jù)的倉(cāng)庫(kù)就是數(shù)據(jù)庫(kù)。

什么是數(shù)據(jù)? 文件,圖片,視頻,訂單,用戶名,密碼等等。

這些數(shù)據(jù)都需要有專門(mén)的地方來(lái)保存和管理。

在我們沒(méi)有學(xué)習(xí)數(shù)據(jù)庫(kù)技術(shù)之前,我們使用的數(shù)據(jù)都是以文件系統(tǒng)(db.json)的方式保存的。我們需要一個(gè)專門(mén)的軟件來(lái)管理我們的數(shù)據(jù), 這就是數(shù)據(jù)庫(kù)。

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

兩大陣營(yíng)-數(shù)據(jù)庫(kù)分類

  • 關(guān)系型數(shù)據(jù)庫(kù),代表產(chǎn)品:

    • MySQL

    • Oracle

    • Sql server

    • DB2

  • 非關(guān)系型數(shù)據(jù)庫(kù)

    • redis 鍵值存儲(chǔ)數(shù)據(jù)庫(kù)

    • HBaise列存儲(chǔ)數(shù)據(jù)庫(kù)

    • MongoDB 面向文檔數(shù)據(jù)庫(kù)

    • neo4j 圖形數(shù)據(jù)庫(kù)

    • Elasticsearch 搜索引擎存儲(chǔ)

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

理解關(guān)系型數(shù)據(jù)庫(kù)

在關(guān)系型數(shù)據(jù)庫(kù)中,存在三級(jí)關(guān)系:

  • 數(shù)據(jù)庫(kù)

  • 數(shù)據(jù)表

  • 字段

類比excel

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

  • 每一列都是一類數(shù)據(jù) --- 字段

  • 每一行代表一條數(shù)據(jù) --- 記錄

數(shù)據(jù)庫(kù)excel文件
數(shù)據(jù)庫(kù)excel文件
數(shù)據(jù)表excel文件中的某一個(gè)sheet
表結(jié)構(gòu):字段sheet中的表頭:列

MySQL簡(jiǎn)介

MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開(kāi)發(fā),目前屬于 Oracle 旗下產(chǎn)品 。MySQL所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。

  • 體積小、速度快、總體擁有成本低,一般中小型網(wǎng)站的開(kāi)發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。

  • 搭配 PHP 和 Apache 可組成良好的開(kāi)發(fā)環(huán)境。

3p技術(shù):php,asp,jsp

操作數(shù)據(jù)庫(kù)-用navicat

新建數(shù)據(jù)庫(kù)

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

在彈出的窗口中填寫(xiě)數(shù)據(jù)庫(kù)名即可。

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些點(diǎn)擊確定之后,會(huì)在左側(cè)的數(shù)據(jù)庫(kù)列中看到上面創(chuàng)建成功的數(shù)據(jù)庫(kù)。

新建數(shù)據(jù)表

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

點(diǎn)擊 "新建表", 然后在開(kāi)始設(shè)置字段

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

主鍵: 作用是區(qū)別一條數(shù)據(jù)和其它數(shù)據(jù)。(它相當(dāng)于人的身份證號(hào))

設(shè)置字段完成之后,點(diǎn)擊上圖左上角所示的保存按鈕,就會(huì)進(jìn)一步彈出對(duì)話框,讓填寫(xiě)表的名字。

我們填入user

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

編輯字段

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

添加數(shù)據(jù)

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

一條內(nèi)容輸入完成后,按下tab,會(huì)自動(dòng)進(jìn)入下一條記錄的輸入

學(xué)習(xí)使用SQL語(yǔ)句

結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱SQL,用來(lái)操作關(guān)系型數(shù)據(jù)庫(kù):

  • 是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用來(lái)存取數(shù)據(jù)以及查詢、更新、和管理關(guān)系型數(shù)據(jù)庫(kù)。

  • .sql是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。

最常用的用于數(shù)據(jù)操作的sql語(yǔ)句有四類,分別對(duì)應(yīng)對(duì)數(shù)據(jù)的四種操作:

  • 增(create)(例如:用戶注冊(cè))

  • 刪(delete) (例如:刪除訂單)

  • 改(update) (例如:修改密碼)

  • 查(select , read) (例如:信息搜索)

在navicat中運(yùn)行sql - 添加數(shù)據(jù)

打開(kāi)sql編輯區(qū)

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

然后:

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

學(xué)習(xí) sql中的insert into 命令

格式:

 insert into 表名(字段名1,字段名2,....)  values (值1,值2,....)

注意:

  • 字段的順序要和值的順序是完全匹配的

  • 字段列表可以不與真實(shí)數(shù)據(jù)表中的字段完全相等,

    • 可以省略一些不必要的字段

    • 順序與不需要與定義表時(shí)的順序一致

  • 如果是字符串類型的字段,其值要加"",如果是數(shù)值類型的字符串,其值不需要加“”

示例:

insert into stu (sex, weight, name) values ('男', 60, '龐凱')

sql-delete語(yǔ)句-刪除數(shù)據(jù)

格式

 delete  from 表名  where 刪除條件復(fù)制代碼

注意:不指定條件將刪除所有數(shù)據(jù)

示例

-- 刪除id為14的同學(xué)
delete from stu where id=14

-- 刪除的時(shí)候,不加條件,將刪除stu表中的全部記錄
delete from stu

sql-update語(yǔ)句-修改數(shù)據(jù)

格式

update 表名 set 字段1=值1, 字段2=值2,...  where 修改條件

注意:

- 要修改的值使用鍵值對(duì)來(lái)表示 
- 多個(gè)字段用,分隔
- 不指定條件,將修改當(dāng)前表中全部的記錄

示例

-- 修改id為1的同學(xué)的年齡為53
update stu set age=53 where id = 1

-- 修改id為1的同學(xué)的年齡為35,身高為160
update stu set age=35,height=160 where id = 1

-- 如果修改的時(shí)候,不加條件,則會(huì)修改全部的數(shù)據(jù)
update stu set weight = 60

sql-select-語(yǔ)句-數(shù)據(jù)查詢

作用

把數(shù)據(jù)從數(shù)據(jù)庫(kù)查出來(lái)

格式

SELECT  字段名1, 字段名2, .....  FROM 表名  WHERE <條件表達(dá)式>

示例

# 查詢部分字段SELECT id,name,age FROM stu
# 查詢所有字段SELECT * FROM stu
# 帶條件的查詢SELECT * FROM 表名 WHERE 條件1 and 條件2

where子句

select field1, field2... from 表名 查詢表中的所有數(shù)據(jù)

where 可以使用條件來(lái)篩選查詢出的結(jié)果

-- 查詢所有的學(xué)生
select * from stu

-- 查詢所有學(xué)生的id,name,height
select id,name,height from stu

-- 帶條件的查詢
select * from stu where 條件

-- 查詢所有的男同學(xué)
select * from stu where sex='男'

-- 查詢id為2的男同學(xué)
select * from stu where id=2

-- 查詢年齡大于50的同學(xué)
select * from stu where age > 50

-- 查詢年齡大于50歲的男同學(xué)
select * from stu where age>50 and sex='男'

-- 查詢年齡在30~60之間的同學(xué),包括30和60
select * from stu where age>=30 and age<=60
select * from stu where age between 30 and 60

node.js操作mysql

通過(guò)mysql這個(gè)包來(lái)操作mysql數(shù)據(jù)庫(kù)。

安裝包

mysql模塊是一個(gè)第三方模塊,專門(mén)用來(lái)操作MySQL數(shù)據(jù)庫(kù)。

# 安裝
npm i mysql

使用步驟

要想用這個(gè)包連接數(shù)據(jù)庫(kù),首先要確保在電腦有mysql(phpstudy 還要啟動(dòng)mysql服務(wù))

一共需要4個(gè)步驟:

  • 加載 MySQL 模塊

  • 創(chuàng)建 MySQL 連接對(duì)象

  • 連接 MySQL 服務(wù)器

  • 執(zhí)行SQL語(yǔ)句

var mysql = require('mysql');

var connection = mysql.createConnection({
  host     : 'localhost',   // 你要連接的數(shù)據(jù)庫(kù)服務(wù)器的地址
  port     : 3306,// 端口號(hào)
  user     : 'root',        // 連接數(shù)據(jù)庫(kù)服務(wù)器需要的用戶名
  password : 'root',        // 連接數(shù)據(jù)庫(kù)服務(wù)器需要的密碼
  database : 'gz61'      //你要連接的數(shù)據(jù)庫(kù)的名字
});

connection.connect((err) => {
  // 如果有錯(cuò)誤對(duì)象,表示連接失敗
  if (err) return console.log('數(shù)據(jù)庫(kù)連接失敗')
  // 沒(méi)有錯(cuò)誤對(duì)象提示連接成功
  console.log('mysql數(shù)據(jù)庫(kù)連接成功')
});

node操作mysql-查詢操作

執(zhí)行查詢類型的SQL語(yǔ)句,查詢結(jié)果(result)是一個(gè)數(shù)組,每個(gè)單元是對(duì)象,對(duì)象的屬性是數(shù)據(jù)表的字段名。

// 1. 加載mysql
const mysql = require('mysql');
// 2. 創(chuàng)建連接對(duì)象
const conn = mysql.createConnection({
    // 對(duì)象的屬性名字不能改變
    host: 'localhost',
    port: 3306,
    user: 'root',
    password: 'root',
    database: 'gz61'
});
// 3. 連接到MySQL服務(wù)器
connection.connect((err) => {
  // 如果有錯(cuò)誤對(duì)象,表示連接失敗
  if (err) return console.log('數(shù)據(jù)庫(kù)連接失敗')
  // 沒(méi)有錯(cuò)誤對(duì)象提示連接成功
  console.log('mysql數(shù)據(jù)庫(kù)連接成功')
});
// 4. 執(zhí)行SQL語(yǔ)句
let sql = 'select id,name,age from stu';
connection.query(sql, (err, result, fields) => {
    if (err) throw err; // throw err 相當(dāng)于 return console.log(err);
    console.log(result); // result就是查詢結(jié)果
});

node操作mysql-添加操作

執(zhí)行添加類型的SQL語(yǔ)句,查詢結(jié)果(result)是一個(gè)對(duì)象,該對(duì)象中有兩個(gè)屬性要關(guān)注:

  • affectedRows: 受影響行數(shù)

  • insertID: 查詢數(shù)據(jù)的主鍵值

// 1. 加載mysql
const mysql = require('mysql');
// 2. 創(chuàng)建連接對(duì)象
const conn = mysql.createConnection({
    // 對(duì)象的屬性名字不能改變
    host: 'localhost',
    port: 3306,
    user: 'root',
    password: 'root',
    database: 'gz61'
});
// 3. 連接到MySQL服務(wù)器
connection.connect((err) => {
  // 如果有錯(cuò)誤對(duì)象,表示連接失敗
  if (err) return console.log('數(shù)據(jù)庫(kù)連接失敗')
  // 沒(méi)有錯(cuò)誤對(duì)象提示連接成功
  console.log('mysql數(shù)據(jù)庫(kù)連接成功')
});

let sql = 'insert into users (name,password) values("小王","snv")'
connection.query(sql, (err, result) => {
    if (result.affectedRows > 0) {
        console.log('添加成功,新數(shù)據(jù)的id為:' + result.insertId);
    } else {
        console.log('添加失敗');
    }
});

node操作mysql-修改操作

執(zhí)行修改類型的SQL語(yǔ)句,查詢結(jié)果(result)是一個(gè)對(duì)象,該對(duì)象中有 affectedRows 屬性,表示本次修改操作影響到的行數(shù)。

// 1. 加載mysql
const mysql = require('mysql');
// 2. 創(chuàng)建連接對(duì)象
const conn = mysql.createConnection({
    // 對(duì)象的屬性名字不能改變
    host: 'localhost',
    port: 3306,
    user: 'root',
    password: 'root',
    database: 'gz61'
});
// 3. 連接到MySQL服務(wù)器
connection.connect((err) => {
  // 如果有錯(cuò)誤對(duì)象,表示連接失敗
  if (err) return console.log('數(shù)據(jù)庫(kù)連接失敗')
  // 沒(méi)有錯(cuò)誤對(duì)象提示連接成功
  console.log('mysql數(shù)據(jù)庫(kù)連接成功')
});
// 更新
// update stu set 字段=值,字段=值 where id=11
let sql = 'update users set password="123" where name="小王"';

conn.query(sql, (err, result) => {
    if (err) throw err;
    if (result.affectedRows > 0) {
        console.log('修改成功');
    } else {
        console.log('修改失敗');
    }
})

node操作mysql-刪除操作

執(zhí)行刪除類型的SQL語(yǔ)句,查詢結(jié)果(result)是一個(gè)對(duì)象,該對(duì)象中有 affectedRows 屬性

// 1. 加載mysql
const mysql = require('mysql');
// 2. 創(chuàng)建連接對(duì)象
const conn = mysql.createConnection({
    // 對(duì)象的屬性名字不能改變
    host: 'localhost',
    port: 3306,
    user: 'root',
    password: 'root',
    database: 'gz61'
});
// 3. 連接到MySQL服務(wù)器
connection.connect((err) => {
  // 如果有錯(cuò)誤對(duì)象,表示連接失敗
  if (err) return console.log('數(shù)據(jù)庫(kù)連接失敗')
  // 沒(méi)有錯(cuò)誤對(duì)象提示連接成功
  console.log('mysql數(shù)據(jù)庫(kù)連接成功')
});
// 刪除
let sql = 'delete from stu where id=1';

connection.query(sql,(err, result) => {
    if (err) throw err;
    if (result.affectedRows > 0) {
        console.log('刪除成功');
    } else {
        console.log('刪除失敗');
    }
});

了解一下軟刪除

做刪除 : delete from 表名 條件 會(huì)把數(shù)據(jù)直接從數(shù)據(jù)庫(kù)中刪除掉!

思路:

  • 不是真的刪除,而是設(shè)置一個(gè)特殊的字段表示當(dāng)前的狀態(tài):正常還是已經(jīng)刪除

node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些

# 目標(biāo):把id=16的軟刪除掉
update stu set isDelete=1 where id=16

模塊化封裝

分析上面幾個(gè)單獨(dú)的功能點(diǎn),它們基本的語(yǔ)法格式是一致的,只是要執(zhí)行的sql語(yǔ)句不同而已,所以,我們可以對(duì)它們進(jìn)行一個(gè)簡(jiǎn)單的封裝。然后再寫(xiě)測(cè)試文件對(duì)其進(jìn)行測(cè)試。

涉及兩個(gè)文件:

  • sql.js

  • sqltest.js

封裝模塊

模塊名:sql.js

// 由于四項(xiàng)(insert,delete,update,select)操作只是sql語(yǔ)句不同

// 1. 加載mysql
const mysql = require('mysql');
// 2. 創(chuàng)建連接對(duì)象
const conn = mysql.createConnection({
    // 對(duì)象的屬性名字不能改變
    host: 'localhost',
    port: 3306,
    user: 'root',
    password: 'root',
    database: 'gz61'
});
// 3. 連接到MySQL服務(wù)器
connection.connect((err) => {
  // 如果有錯(cuò)誤對(duì)象,表示連接失敗
  if (err) return console.log('數(shù)據(jù)庫(kù)連接失敗')
  // 沒(méi)有錯(cuò)誤對(duì)象提示連接成功
  console.log('mysql數(shù)據(jù)庫(kù)連接成功')
});

module.exports = connection

測(cè)試

sqltest.js

const conn = require('./sql');

conn.query('select * from users where username="小美1" and userpassword="666"', (err, data) => {
  console.log(err);
  console.log(data);
  if (data.length > 0) {
    console.log('用戶名密碼Ok');
  } else {
    console.log('用戶名密碼error');
  }
});

到此,關(guān)于“node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

名稱欄目:node操作MySQL數(shù)據(jù)庫(kù)的方法有哪些
網(wǎng)站URL:http://muchs.cn/article16/ijccdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、外貿(mào)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、營(yíng)銷型網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)