1. 安装mysql数据库
:::success npm install mysql :::
2. 建立连接
:::success
const db = mysql.createPool({
host:’127.0.0.1’,//数据库的IP地址
user:’root’,//数据库的账号
password:’ygn0522’, //数据库密码
database:’my_db_01’ //指定要操作那个数据库
})
:::
3. 检测是否正常工作
db.query('select * from users', (err, result) => {if(err)return console.log(err.message)console.log(result)})
3.1 查询数据
const str = 'select * from users'db.query(str,(err, res) => {if(err) return console.log(err.message)console.log(res)})const str = 'select username, passername from users'db.query(str,(err, res) => {if(err)return console.log(err.message)console.log(res)})
3.2 插入数据
//要插入的数据对象const obj = {userName:'OPPO', passername:'OPPO132'}//待执行的SQL语句, 其中的?表示占位符const sqlStr = 'insert into users (username, passername) values (?,?)'db.query(sqlStr, [obj.userName,obj.passername], (err,res) => {//失败if(err)return console.log(err.message)//成功if(res.affectedRows === 1){console.log('插入成功')}})const obj ={username:'HHAA', passername:'HHAA123',}const sqlStr = 'insert into users set ?'db.query(sqlStr,obj, (err, res) => {if(err)return console.log(err.message)if(res.affectedRows === 1){console.log('插入数据成功')}})
3.3 更新数据
const user = { id: 5, username: 'IRIC', passername: '123456' }const sqlSre = 'update users set username=?,passername=?where id=?'db.query(sqlSre, [user.username, user.passername, user.id], (err, res) => {if (err) return console.log(err.message)if (res.affectedRows === 1) {console.log('插入数据成功')}})const user = { id: 5, username: 'IRIC22', passername: '123456-22' }const sqlStr= 'update users set ? where id=?'db.query(sqlStr,[user, user.id], (err, res) => {if (err) return console.log(err.message)if (res.affectedRows === 1) {console.log('插入数据成功')}})
3.4 删除数据
const sqlStr= 'delete from users where id=?'db.query(sqlStr,5, (err, res) => {if (err) return console.log(err.message)if (res.affectedRows === 1) {console.log('删除成功')}})
使用delete语句,会真的把数据从数据表中删除掉。为了保险起见, 推介使用标记删除的形式。
所谓标记删除,就是在表中设置类似status这样的状态字段, 来标记当前数据是否被删除。
当用户执行了删除动作时, 我们并没有执行delete语句把数据删除掉, 而是执行了update语句, 将这条数据对应的status字段标记为删除即可。
