关系型数据库从零开始学(第三节)在nodejs项目中操作mysql数据库

需要SQL基础,否则效果不好!!对sql不熟悉的小伙伴先看: 关系型数据库从零开始学(第二节)关系型数据库查询常用的SQL命令 - 简书 (jianshu.com)

----------------------------------------------------------------------------------正文------------------------------------------------------------------------------------------------------

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

①安装第三方模块 mysql

②连接到mysql数据库

③通过mysql模块执行SQL语句

1 安装npm i mysql

2 配置 mysql模块 const mysql = require('mysql')

              const db = mysql.createPool({

              host:'127.0.0.1', //数据库ip

              user:'root',      //账号

              password:'admin123', //密码

              database:'my_db_01'  //指定要操作哪个数据库

              })

3 测试连接

db.query('select 1',(err,results=>{

if(err) return console.log(err)

console.log(results)

})

4 查询users表中所有数据

const sqlStr = 'select * from users'

db.query(sqlStr,(err,results) => {

if(err) return console.log(err,message)

console.log(results)

})  //如果正确 ,结果就是一个数组,数组中是对象

5 插入数据

//要插入到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)

//如果执行成功 results 是一个对象

if(results.affectedRows === 1) {console.log('插入数据成功')}

})

5.1 插入数据的快捷方式

如果数据对象的每一个属性名和数据表字段 一 一对应,可以用下面简便方式

const user = {username:'spider-man2',password'cc4321'}

const sqlStr = 'insert into users set ?'  // users是表名

db.query(sqlStr,user,(err,results) => {

if(err) return console.log(err.message)

if(results.affectedRows ===1){

              console.log('插入数据成功‘)

    }

}

6更新数据

const user = {id:6,username:'aaa',password:'000'}

const sqlStr= 'updata 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('更新数据成功')}

})


7 删除数据

一定要谨慎,where 一定要有!!! 一定要有限定条件!!别删库跑路了。。。。

const sqlStr = 'delete from users where id=?'

db.query(sqlStr ,7,(err,results) = >{

if(err) return console.log(err.message)

if(results.affectedRows===1){

console.log('更新数据成功')}

})

7.1 标记删除

标记删除是删除的模拟动作,未真正删除数据库,这样比较安全

在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容