這篇文章主要介紹“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)用合理。
net start mysql
啟動(dòng)mysql
可在桌面右鍵我的電腦進(jìn)入計(jì)算機(jī)管理查看mysql是否已經(jīng)成功運(yùn)行
功能:為我們提供連接、操作mysql數(shù)據(jù)庫(kù)的功能
雙擊,一路next
找到應(yīng)用程序,點(diǎn)擊啟動(dòng)
如果 連接測(cè)試通過(guò),接下來(lái)就可以點(diǎn)擊確定按鈕,正式連入mysql了。
連入后的效果如下:
英文: database
保存和管理數(shù)據(jù)的倉(cāng)庫(kù)就是數(shù)據(jù)庫(kù)。
什么是數(shù)據(jù)? 文件,圖片,視頻,訂單,用戶名,密碼等等。
這些數(shù)據(jù)都需要有專門的地方來(lái)保存和管理。
在我們沒(méi)有學(xué)習(xí)數(shù)據(jù)庫(kù)技術(shù)之前,我們使用的數(shù)據(jù)都是以文件系統(tǒng)(db.json)的方式保存的。我們需要一個(gè)專門的軟件來(lái)管理我們的數(shù)據(jù), 這就是數(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ǔ)
在關(guān)系型數(shù)據(jù)庫(kù)中,存在三級(jí)關(guān)系:
數(shù)據(jù)庫(kù)
數(shù)據(jù)表
字段
類比excel:
每一列都是一類數(shù)據(jù) --- 字段
每一行代表一條數(shù)據(jù) --- 記錄
數(shù)據(jù)庫(kù) | excel文件 |
---|---|
數(shù)據(jù)庫(kù) | excel文件 |
數(shù)據(jù)表 | excel文件中的某一個(gè)sheet |
表結(jié)構(gòu):字段 | sheet中的表頭:列 |
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品 。MySQL所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。
體積小、速度快、總體擁有成本低,一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。
搭配 PHP 和 Apache 可組成良好的開發(fā)環(huán)境。
3p技術(shù):php,asp,jsp
在彈出的窗口中填寫數(shù)據(jù)庫(kù)名即可。
點(diǎn)擊確定之后,會(huì)在左側(cè)的數(shù)據(jù)庫(kù)列中看到上面創(chuàng)建成功的數(shù)據(jù)庫(kù)。
點(diǎn)擊 "新建表", 然后在開始設(shè)置字段
主鍵: 作用是區(qū)別一條數(shù)據(jù)和其它數(shù)據(jù)。(它相當(dāng)于人的身份證號(hào))
設(shè)置字段完成之后,點(diǎn)擊上圖左上角所示的保存按鈕,就會(huì)進(jìn)一步彈出對(duì)話框,讓填寫表的名字。
我們填入user
一條內(nèi)容輸入完成后,按下tab,會(huì)自動(dòng)進(jìn)入下一條記錄的輸入
結(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) (例如:信息搜索)
然后:
格式:
insert into 表名(字段名1,字段名2,....) values (值1,值2,....)
注意:
字段的順序要和值的順序是完全匹配的
字段列表可以不與真實(shí)數(shù)據(jù)表中的字段完全相等,
可以省略一些不必要的字段
順序與不需要與定義表時(shí)的順序一致
如果是字符串類型的字段,其值要加"",如果是數(shù)值類型的字符串,其值不需要加“”
示例:
insert into stu (sex, weight, name) values ('男', 60, '龐凱')
delete from 表名 where 刪除條件復(fù)制代碼
注意:不指定條件將刪除所有數(shù)據(jù)
-- 刪除id為14的同學(xué)
delete from stu where id=14
-- 刪除的時(shí)候,不加條件,將刪除stu表中的全部記錄
delete from stu
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
把數(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
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
通過(guò)mysql這個(gè)包來(lái)操作mysql數(shù)據(jù)庫(kù)。
mysql模塊是一個(gè)第三方模塊,專門用來(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ù)連接成功')
});
執(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é)果
});
執(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('添加失敗');
}
});
執(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('修改失敗');
}
})
執(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)刪除
# 目標(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)單的封裝。然后再寫測(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
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://jinyejixie.com/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)