当前位置: 首页 > news >正文

使用node的mysql模块操作MySQL数据库

配置mysql模块
1、打开根目录,打开终端,初始化执行npm init -y;
2、下载mysql: npm i mysql;

操作数据库
1、导入mysql模块;
2、建立和MySQL数据库的联系
3、测试mysql模块是否正常工作
4、查询 users 表中所有数据
5、插入数据到 users 表中
6、修改用户信息
7、删除用户信息

// 1.导入mysql模块
const mysql = require('mysql')// 2.建立和MySQL数据库的联系
const db = mysql.createPool({host: '127.0.0.1', //数据库的ip地址user: 'root', //登录数据库的账号password: 'hoshi1234', //登录数据库的密码datebase: 'my_dv_01' //指定要操作那个数据库
})// 3.测试mysql模块是否正常工作
db.query('select 1',(err, results) => {// mysql工作期间报错了if(err) return console.log(err.message);// 能够正常执行SQL语句console.log(results);// 返回 [ RowDataPacket { '1': 1 } ]
})// 4.查询 users 表中所有数据
const sqlStr = 'select * from my_dv_01.users'
db.query(sqlStr ,(err, results) => {// mysql工作期间报错了if(err) return console.log(err.message);// 能够正常执行SQL语句console.log(results);// 返回 users表的字段
})// 5.插入数据到 users 表中// 要插入到表中的数据
const user = { usersname: 'benben', password:'886886' }// 待执行的 SQL语句 ,英文问号 ? 代表占位符(SQL语法)
const sqlStr2 = 'insert into users (usersname, password) VALUES (?,?)'// 使用数组的形式,依次为 ? 占位符指定具体的位置
db.query(sqlStr2, [user.usersname , user.password],(err, results) => {// mysql工作期间报错了if(err) return console.log(err.message);// 如果执行的是insert into这个插入语句,则results是一个对象// 可以通过results.affectedRows判断是否成功if(results.affectedRows === 1) {console.log('插入数据成功');// 打开MySQL的users表格也能看到新数据// 当前数据只有4条,本条数据id为什么是5?// 因为之前有过4的数据,但是被删除了,id具有唯一性,删除了也不能被其他数据使用}
})// 插入数据的便捷方式
const user = { usersname: 'niuniu', password:'000000' }// 定义待执行的 SQL 语句
const sqlStr = 'insert into my_dv_01.users set ?'// 执行 SQL 语句
db.query(sqlStr, user,(err, results) => {if(err) return console.log(err.message);if(results.affectedRows === 1) {console.log('插入数据成功');}
})// 如何更新用户的信息(UPDATE 语句用于更新表中已存在的记录)// 要插入到表中的数据
const user = { id: 6, usersname: '犇犇', password:'000111' }// 定义SQL语句
const sqlStr = 'update my_dv_01.users set usersname=?, password=? where id=?'// 执行SQL语句
db.query(sqlStr,[user.usersname, user.password, user.id], (err, results) => {if(err) return console.log(err.message);if(results.affectedRows === 1) {console.log('插入数据成功');}
})// 更新用户信息的便捷方式(数据对象的每个属性和字段一一对应的情况下可使用)
const user = { id: 6, usersname: '夸夸牛', password:'000111' }// 定义SQL语句
const sqlStr = 'update my_dv_01.users set ? where id=?'// 执行SQL语句
db.query(sqlStr,[user, user.id], (err, results) => {if(err) return console.log(err.message);if(results.affectedRows === 1) {console.log('插入数据成功');}
})// 删除数据
// 定义SQL语句
const sqlStr = 'delete from my_dv_01.users where id=?'// 执行SQL语句
// SQL语句中有多个占位符,则必须使用数组为每个占位符指定具体的值
// 如果只有一个占位符,则可以省略数组
db.query(sqlStr,5,(err,results) => {if(err) return console.log(err.message);if(results.affectedRows === 1) {console.log('删除数据成功');}
})// 标记删除
// 使用delete语句会把数据真正删除掉,非常危险,一般情况下推荐使用标记删除,类似于修改status字段的状态,比如更新成1表示删除;// 定义SQL语句
const sqlStr = 'update my_dv_01.users set status=? where id=?'// 执行SQL语句
db.query(sqlStr,[1, 3],(err, results) => {if(err) return console.log(err.message);if(results.affectedRows === 1) {console.log('标记删除成功');}
})


喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.lqws.cn/news/524647.html

相关文章:

  • 多传感器标定简介
  • Linux驱动学习day7
  • 【kubernetes】--Service
  • C# LINQ语法
  • Redis—持久化
  • 使用亮数据网页抓取API自动获取Tiktok数据
  • C++包管理工具:conan2使用教程
  • 网络安全技术期末考试
  • 专题:2025医疗AI应用研究报告|附200+份报告PDF汇总下载
  • 多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文
  • QUdpScoket 组播实现及其中的踩坑点记录
  • 【DevTools浏览器开发者工具反调试之无限Debugger跳过】
  • 如何防止自己的电脑被控制?开启二次验证保护教程
  • 强化学习理论基础:从Q-learning到PPO的算法演进(1)
  • [日志收集]
  • 刷题 | 牛客 - js中等题-下 (更ing)45/54知识点解答
  • 深度学习实战112-基于大模型Qwen+RAG+推荐算法的作业互评管理系统设计与实现
  • Java期末复习题(二)
  • 计算机网络-----详解HTTPS协议
  • 日本生活:日语语言学校-日语作文-沟通无国界(5)-题目:我的一天
  • C# 中 string.Equals 以及 StringComparison 枚举的不同选项
  • SQL进阶:CASE表达式
  • 数组基础知识
  • IBMS 智能化系统:让建筑提前进入 AIoT 智慧纪元​
  • Linux基本指令篇 —— mv指令
  • 时序数据库 TDengine 助力华锐 D5 平台实现“三连降”:查询快了,机器少了,成本也低了
  • 以太坊执行客户端和共识客户端各自的作用及意义
  • java 对接ETH(以太坊) 交易相关资料
  • 区间求最值问题高效解决方法
  • Linux下使用docker nginx部署vue前端项目工程