【MySQL】在项目中操作MySQL---简单的增删改查

本文介绍了如何在项目中操作MySQL数据库,包括安装mysql模块、连接数据库、执行SQL语句进行增删改查。详细阐述了查询、插入、更新和删除数据的步骤,特别提到了标记删除的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  1. 安装操作MySQL数据库的第三方模块(mysql
  2. 通过mysql模块连接到MySQL数据库
  3. 通过mysql模块执行SQL语句

安装mysql模块

npm install mysql

配置mysql模块

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

测试模块是否可以正常工作: 

调用db.query()函数,执行要执行的SQL语句,通过回调函数拿到执行的结果:

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

查询数据

 执行的select语句,执行的结果是数组 

//查询users表中所有的用户数据
db.query('SELECT * from users',(err,results)=>{
    //查询失败
    if(err) return console.log(err.message)
    //查询成功
    console.log(results)
})

插入数据

如果执行的是insert into插入语句,则results是一个对象

可以通过affectedRows属性,来判断是否插入数据成功 

//要插入到users表中的数据对象
const user = {username:'Spider-Man',password:'pcc321'}

//待执行的sql语句,其中的英文?是占位符
const sqlStr='insert into users (username,password) values (?,?)'
//使用数组的形式,依次为?占位符指定具体的值
db.query(sqlStr,[user.username,user.password],(err,results)=>{
   if(err) return console.log(err.message)
   if(results.affectedRows === 1 ){console.log('插入数据成功')}
})

注意因为之前id为4和5的数据删除了,所以id从6开始

插入数据的便捷方式,如果数据对象的每个属性和数据表的字段一一对应

//要插入到users表中的数据对象
const user = {username:'Spider-Man2',password:'pcc4321'}

//待执行的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('插入数据成功')}
})

更新数据

执行了update语句之后,得到的结果也是对象 

//要更新的users表中的数据对象
const user = { id:8, username:'aaa',password:'000'}

//要执行的sql语句
const sqlStr='update users set username=?,password=? where id=?'
//执行sql语句
db.query(sqlStr,[user.username,user.password,user.id],(err,results)=>{
   if(err) return console.log(err.message)
   if(results.affectedRows === 1 ){console.log('更新数据成功')}
})

 

 更新数据的便捷方式

//要更新的users表中的数据对象
const user = { id:8, username:'aaaa',password:'0001'}

//要执行的sql语句
const sqlStr='update users set ? where id=?'
//执行sql语句
db.query(sqlStr,[user.id],(err,results)=>{
   if(err) return console.log(err.message)
   if(results.affectedRows === 1 ){console.log('更新数据成功')}
})

 

删除数据

//要执行的sql语句
const sqlStr='delete from users where id=?'
//调用db.query执行sql语句的同时,为占位符指定具体的值
//注意:如果sql语句中有多个占位符,则必须使用数组为每个占位符指定具体的值
//如果sql语句中只有一个占位符,则可以省略数组
db.query(sqlStr,6,(err,results)=>{
   if(err) return console.log(err.message)
   if(results.affectedRows === 1 ){console.log('删除数据成功')}
})

 

标记删除

使用delete语句,会把真正的数据从表中删除掉,为了保险起见,推荐使用标记删除的形式,来模拟删除的动作,所谓的标记删除,就是在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除

//标记删除 使用update语句替代delete语句,只更新数据的状态,并没有真正删除
db.query('update users set status=1 where id=?',6,(err,results)=>{
   if(err) return console.log(err.message)
   if(results.affectedRows === 1 ){console.log('删除数据成功')}
})
const sqlStr='update users set status=? where id=?'
//标记删除 使用update语句替代delete语句,只更新数据的状态,并没有真正删除
//数组的两个数,第一个为status  第二个为id
db.query(sqlStr,[1,8],(err,results)=>{
    if(err) return console.log(err.message)
    if(results.affectedRows === 1 ){console.log('删除数据成功')}
 })

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翘阳啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值