1、在项目中操作数据库的步骤

① 安装操作 MySQL 数据库的第三方模块(mysql)
② 通过 mysql 模块连接到 MySQL 数据库
③ 通过 mysql 模块执行 SQL 语句

2 、安装与配置 mysql 模块

1. 安装 mysql 模块
mysql 模块是托管于 npm 上的第三方模块。它提供了在 Node.js 项目中连接和操作 MySQL 数据库的能力。
想要在项目中使用它,需要先运行如下命令,将 mysql 安装为项目的依赖包:

npm install mysql

2. 配置 mysql 模块
在使用 mysql 模块操作 MySQL 数据库之前,必须先对 mysql 模块进行必要的配置,主要的配置步骤如下:

// 1.导入MySQL数模块
const mysql = require('mysql')
// 2.建立与MySQL数据库的连接
const db = mysql.createPool({host: '127.0.0.1',//数据库的IP地址user: 'root',//登录数据库的账号password: 'admin123',//登录数据库的密码database: 'my_db_01'//指定要操作那个数据库
})

3. 测试 mysql 模块能否正常工作
调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果:

// 测试MySQL模块能否正常工作
db.query('select 1', (err, results) => {if (err)return console.log(err.message);//只要能打印出[RowDataPacket{'1':1}]的结果,就能证明数据库连接正常console.log(results);
})

3、 使用 mysql 模块操作 MySQL 数据库

1. 查询数据
查询 users 表中所有的数据:

// 查询users表中所有的数据
const sqlStr = 'select * from users'
db.query(sqlStr, (err, results) => {// 查询失败if (err)return console.log(err.message);// 查询成功//注意:如果执行的语句是select查询语句,则执行的结果是数组console.log(results);
})

2. 插入数据
向 users 表中新增数据, 其中 username 为 Spider-Man,password 为 pcc321。示例代码如下:

// 向users表中插入数据
// 向users表中新增数据,其中username为 SXL,password 为 sxl123
// 1.要插入到users表中的数据对象
const user = { username: 'SXL', password: 'sxl123' }
// 2.待执行的sql语句,其中 英文的 ? 表示占位符
const sqlStr = 'insert into users(username,password) values (?,?)'
// 3.使用数组的形式,依次为 ? 占位符指定具体的值
db.query(sqlStr, [user.username, user.password], (err, results) => {if (err)return console.log(err.message);//数据插入失败// 注意:如果执行的是insert into插入语句,则results 是一个对象// 可以通过 affectedRows属性,来判断是否插入数据成功if (results.affectedRows === 1) {console.log('插入数据成功');}
})

3. 插入数据的便捷方式
向表中新增数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据:

//向users表中便捷快速的插入数据
// 当数据繁多,新增数据时,如果数据对象的每个属性和数据表的字段 一一对应
const user = { username: 'wsnd', password: 'wsnd1234' }
// 定义待执行的sql语句
const sqlstr = 'insert into users set ?'
// 执行sql语句
db.query(sqlstr, user, (err, results) => {if (err)return console.log(err.message);if (results.affectedRows === 1) {console.log('输入数据成功!');}
})

4. 更新数据
可以通过如下方式,更新表中的数据:

// 演示如何更新用户的信息
// 1.需更新的数据对象
const user = { id: 3, username: 'bcd', password: '202012' }
// 2.要执行的sql语句
const sqlStr = 'update users set username=?,password=? where id=?'
db.query(sqlStr, [user.username, user.password, user.id], (err, results) => {if (err)return console.log(err.message);if (results.affectedRows === 1) {console.log('更新数据成功');}
})

5. 更新数据的便捷方式
更新表数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速更新表数据:

// 演示如何便捷快速更新众多用户的信息
// 1.需更新的数据对象
const user = { id: 1, username: 'hsd', password: '2hhh01' }
// 2.要执行的sql语句
const sqlStr = 'update users set ? where id=?'
db.query(sqlStr, [user, user.id], (err, results) => {if (err)return console.log(err.message);if (results.affectedRows === 1) {console.log('更新数据成功');}
})

6. 删除数据
在删除数据时,推荐根据 id 这样的唯一标识,来删除对应的数据。示例如下:

// 删除数据
// 删除id=11的用户
// 在删除数据时,推荐根据id这样的唯一标识,来删除对应的数据
// 1.要执行的sql语句
const sqlStr = 'delete from users where id=?'
// 注意:如果sql语句中有多个占位符,则必须使用数组为每个占位符指定具体的值
// 如果SQL语句中只有一个占位符,则可以省略数组
db.query(sqlStr, 11, (err, results) => {if (err)return console.log(err.message);// 注意:执行delete语句之后,结果也是一个对象,也会包含affectedRows属性if (results.affectedRows === 1) {console.log('删除数据成功!');}
})

7. 标记删除
使用 DELETE 语句,会把真正的把数据从表中删除掉。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作
所谓的标记删除就是在表中设置类似于 status 这样的状态字段,来标记当前这条数据是否被删除
当用户执行了删除的动作时,我们并没有执行 DELETE 语句把数据删除掉,而是执行了 UPDATE 语句,将这条数据对应的 status 字段标记为删除即可。

/* 标记删除
使用delete会真正删除数据,为了保险起见,使用标记删除,来模拟删除的动作
标记删除:就是在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除
执行 update语句,将这条数据对应的status字段标记为删除即可 */
const sqlStr = 'update users set status=? where id=?'
db.query(sqlStr, [1, 12], (err, result) => {if (err)return console.log(err.message);if (result.affectedRows === 1) {console.log('标记删除数据成功!');}
})

在项目中操作MySQL相关推荐

  1. MySQL数据库(安装配置 语句语法使用 项目中操作MySQL)

    文章目录: 一:安装配置 1.安装MySQL 2.卸载MySQL 3.汉化MySQL 4.启动和停止MySQL 5.修改MySQL密码 6.连接MySQL 二:语句语法使用 1.语句使用:增删改查 增 ...

  2. 数据库与身份认证(数据库的基本概念,安装并配置 MySQL,MySQL 的基本使用,在项目中操作 MySQL,前后端的身份认证)

    theme: channing-cyan 数据库与身份认证 1. 数据库的基本概念 1.1 什么是数据库 数据库(database)是用来组织.存储和管理数据的仓库. 当今世界是一个充满着数据的互联网 ...

  3. 数据库与身份认证:在项目中操作 MySQL

    在项目中操作数据库的步骤 ①安装操作 MySQL 数据库的第三方模块(mysql) ②通过 mysql 模块连接到 MySQL 数据库 ③通过 mysql 模块执行 SQL 语句 安装与配置 mysq ...

  4. 在Asp.net core 项目中操作Mysql数据库

    工程环境 : win10+asp.net core 2.1 + vs2017 步骤: 1 在vs中新建asp.net core  项目 2 在Nuget中为项目添加第三方包microsoft.visu ...

  5. Python中操作MySQL/Oracle

    Python中操作MySQL/Oracle 一.Python操作数据库介绍 二.Python操作MySQL 2.1 PySQL模块 2.1.1 安装PyMySQL 2.2 基本使用 2.3 获取最新创 ...

  6. openresty开发系列28--openresty中操作mysql

    openresty开发系列28--openresty中操作mysql Mysql客户端    应用中最常使用的就是数据库了,尤其mysql数据库,那openresty lua如何操作mysql呢?   ...

  7. python中的pymysql_(转)Python中操作mysql的pymysql模块详解

    原文:https://www.cnblogs.com/wt11/p/6141225.html https://shockerli.net/post/python3-pymysql/----Python ...

  8. mysql连接规定时区以及编码_springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决...

    springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决 问题原因 1.application.properties的设置 1.1spring.data ...

  9. node中操作MySQL

    node操作MySQL数据库: 在node中操作MySQL数据库的基本流程如下: // node操作MySQL需要在npm官网下载mysql包并载入node执行代码:// 1.载入MySQL数据库包v ...

最新文章

  1. flash 多个文件上传
  2. OpenCV简单的几何绘图的实例(附完整代码)
  3. java 三个点_Java,参数中的3个点
  4. Android移植的Box2D
  5. 设计模式的C语言应用-观察者模式-第四章
  6. spring-cloud 学习四 服务网关
  7. 利用Windbg深入理解变量的存储模型
  8. spring--bean后置处理器(BeanPostProcessor)原理解析
  9. DevTools 无法加载来源映射无法加载 httplocalhost8082axios.min.map 的解决方法
  10. css文字超过两行溢出隐藏
  11. [任务书+论文+PPT+源码]基于Android与多媒体的英文学习APP的设计与实现
  12. 实现简易的 Vue 响应式
  13. 【Nodejs】Http模块01
  14. android 调试原理
  15. 全国区划图县域图(截至2019年底)
  16. 学习C语言的第一步安装
  17. 培训机构教师自我介绍
  18. 7.8大力聪慧的水手分椰子
  19. 永磁直流无刷电机设计之路(二)——整体方案设计
  20. Excel如何判断日期所处的季度

热门文章

  1. mysql 如何解决memory_解决memory
  2. Windows常见目录及文件夹的作用
  3. 使用Xamarin.Android中的Google登录OAuth 2.0对用户进行身份验证
  4. ActiveMQ:消息中心基本介绍
  5. 车载毫米波雷达的校准问题(1)
  6. 【matlab与机器人】PUMA560的SDH逆解
  7. linux内核支持浮动ip,Linux配置浮动IP实现WEB高可用
  8. Arduino Mega 2560 Reference Design原理图解读
  9. sass 基于ruby_使用Sass和Gerillass创建漂亮的基于卡片的设计布局
  10. 国内计算机科学家名人名言大全摘抄,科学家名人名言警句摘抄