目录
前言
本文介绍在node中对数据库使用sql语句进行增删改查
在node中安装mysql模块
npm i mysql
引入绑定数据库
导入mysql模块
const mysql = require('mysql')
绑定数据库
const db = mysql.createPool({
host:'127.0.0.1',
user:'root',
password:'数据库密码',
database:'数据库名称'
})
验证mysql模块能否正常工作
db.query('select 1',(err,results)=> {
if(err) return console.log(err.message)
console.log(results)
})
当成功打印 [ RowDataPacket { '1': 1 } ] 则代表能正常工作
增
const user = {username:'xx',password:'0000'}
const sqlStr = 'insert into users(username,password)value(?,?)'
db.query(sqlStr,[user.username,user.password],(err,results)=> {
if(err) return console.log(err.message)
if(results.affectedRow === 1){
console.log('插入成功');
}
})
- 匹配的数据库对象.query('sql语句',增的对象,(err,results)=>{})
- results.affectedRow === 1:sql语句改变的行数为1
- ?:占位符
注意:当sql语句中占位符为仅为一个时,可省略数组。两个以上时,必须以数组形式
便捷方式
想使用便捷方式,需要数据对象的每个属性和数据表的字段一一对应
const user = {username:'xx2',password:'0000'}
const sqlStr = 'insert into users set ?'
db.query(sqlStr,user,(err,results)=> {
if(err) return console.log(err.message)
if(results.affectedRow === 1){
console.log('插入成功');
}
})
由以上代码可知
原sql语句
const sqlStr = 'insert into users(username,password)value(?,?)'
便捷方式
const sqlStr = 'insert into users set ?'
原sql语句表名后面的一长串被 set ?替代
原
db.query(sqlStr,[user.username,user.password],(err,results)=>{})
便捷方式
db.query(sqlStr,user,(err,results)=>{})
省略了数组
改
指定id进行更改
const user = { id:16,username:'xx1',password:'0000'}
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.affectedRow === 1){
console.log('插入成功');
}
})
便捷方式
const user = { id:18,username:'xx3',password:'1111'}
const sqlStr = 'update users set ?where id =?'
db.query(sqlStr,[user,user.id],(err,results)=> {
if(err) return console.log(err.message)
if(results.affectedRow === 1){
console.log('插入成功');
}
})
删
根据id唯一标识来删除对应的数据,直接删除数据是十分危险的,容易操作失误所以这里推荐使用标记删除
标记删除就是使用update语句改变status的状态,当看到状态为1时,即代表这条数据已经被禁用了
const user = { id:16,status:1}
const sqlStr = 'update users set status=?where id =?'
db.query(sqlStr,[user.status,user.id],(err,results)=> {
if(err) return console.log(err.message)
if(results.affectedRow === 1){
console.log('插入成功');
}
})
查
const sqlStr = 'select * from users'
db.query(sqlStr,(err,results)=> {
if(err) return console.log(err.message)
console.log(results);
})