1.安装mysql模块
使用如下命令,安装mysql模块npm install mysql or npm i mysql
2.配置mysql模块
// 1.导入mysql模块
const mysql = require('mysql')
// 2.建立与Mysql数据库的连接关系
const db = mysql.createPool({
host: '127.0.0.1',//数据库的IP地址
user: 'root',//登录数据库的账号
password: '1234',//登录数据库的密码
database: 'my_db_01',//指定要操作哪个数据库
})
3.测试mysql模块
数据库表
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用来标识用户的唯一id',
`username` varchar(45) NOT NULL COMMENT '用户名称',
`password` varchar(45) NOT NULL COMMENT '用户密码',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0表示正常,1表示禁用',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;
测试代码
// 测试mysql模块能否正常工作
db.query('select 1', (err, res) => {
// mysql工作期间报错了
if (err) return console.log(err.message)
// 能够成功执行sql语句
console.log(res)
}) */
4.查询表中数据
// 查询users表中所有的数据
/* const sqlStr = 'select * from users'
db.query(sqlStr, (err, res) => {
if (err) { //请求失败
return console.log(err.message)
}
// 请求成功
console.log(res)
})
5.向表中插入数据
// 向user表中,新增一条数据,其中username的值为Spider-Man,password的值为pcc123
const user = {
username: 'Spider-Man',
password: 'pcc123'
}
// 定义待执行的sql语句
const sqlStr = 'insert into users (username,password,status) values (?,?,?)'
// 执行sql语句
db.query(sqlStr, [user.username, user.password, 0], (err, res) => {
if (err) {
return console.log(err)
}
if (res.affectedRows === 1) {
console.log('插入成功!')
}
})
6.插入数据的便捷形式
向表中新增数据时,如果数据对象的每个属性 和 数据表的字段 一一对应 ,则可以通过如下方式快速插入数据
// 插入数据的便捷方式
const user = {
username: 'Spider-Man2',
password: 'pcc4321'
}
// 定义待执行的sql语句
const sqlStr = 'insert into users set ?'
// 执行sql语句
db.query(sqlStr, user, (err, res) => {
if (err) {
return console.log(err)
}
if (res.affectedRows === 1) {
console.log('插入成功!')
}
})
7.更新表中数据
const user = {
id: 5,
username: 'Spider-Man3',
password: 'pcc3'
}
// 定义待执行的sql语句
const sqlStr = 'update users set username=?, password=? where id=?'
// 执行sql语句
db.query(sqlStr, [user.username, user.password, user.id], (err, res) => {
if (err) {
return console.log(err)
}
// 注意:执行了 update 语句之后,执行的结果,也是一个对象,可以通过 affectedRows 判断是否更新成功
if (res.affectedRows === 1) {
console.log('更新成功!')
}
})
8.简化更新数据方法
const user = {
id: 5,
username: 'Spider-Man4',
password: 'pcc4'
}
// 定义待执行的sql语句
const sqlStr = 'update users set ? where id=?'
// 执行sql语句
db.query(sqlStr, [user, user.id], (err, res) => {
if (err) {
return console.log(err)
}
// 注意:执行了 update 语句之后,执行的结果,也是一个对象,可以通过 affectedRows 判断是否更新成功
if (res.affectedRows === 1) {
console.log('更新成功!')
}
})
9.删除数据
// 删除id为5的用户数据
const sqlStr = 'delete from users where id = ?'
db.query(sqlStr, 5, (err, res) => {
if (err) {
return console.log(err)
}
// 注意:执行了 delete语句之后,执行的结果,也是一个对象,可以通过 affectedRows 判断是否成功
if (res.affectedRows === 1) {
console.log('删除数据成功!')
}
})
10.标记删除
修改数据status状态,来标记这个数据被删除
// 标记删除,更新id为4的用户的状态为1
const sqlStr = 'update users set status = ? where id = ?'
db.query(sqlStr, [1, 4], (err, res) => {
if (err) {
return console.log(err)
}
// 注意:执行了 update 语句之后,执行的结果,也是一个对象,可以通过 affectedRows 判断是否更新成功
if (res.affectedRows === 1) {
console.log('标记删除成功!')
}
})