导入mysql模板,并配置。host为ip地址;user登录数据库的账户;password登录数据库的密码;database是数据库的名称

// 导入mysql模板
const mysql=require('mysql')
const db=mysql.createPool({
    host:'127.0.0.1',
    user:'root',
    password:'admin123',
    database:'my_db_01',
})

测试配置mysql是否成功 ,SELECT 1这儿可以输入任意值

db.query('SELECT 1',(err,results)=>{
    if(err) return console.log(err.message)
    console.log(results)

 终端输入node 加文件的项目。出现一下的情况说明配置成功。

 查询数据库中users表中的数据

const sqlstr='select * from users'
db.query(sqlstr,(err,results)=>{
    if(err) return console.log(err.message);
    // 执行的结果是数组
    console.log(results);
})

 输入node加文件名执行

  插入数据:向users表中,新增一条数据

const user={username:'Tony',password:'pcc123'}
// 定义待执行的sql语句
const sqlStr='insert into users(username,password) values(?,?)'
// 执行sql语句
db.query(sqlStr,[user.username,user.password],(err,results)=>{
    if(err) return console.log(err.message)
// 如果执行的是insert into 插入语句,那么执行results是个对象
// 可以通过affectedRows来判断
    if(results.affectedRows===1) {
        console.log("插入数据成功");
    }
})

node加文件名执行文件

 数据库中users表新增的smart

插入数据的便捷方法

数据对象的每个属性和数据表的字段一一对应,那么可以使用下列方法

const user={username:'quit',password:'pcc123'}
// 定义待执行的sql语句
const sqlStr='insert users set ?'
// 执行sql语句
db.query(sqlStr,user,(err,results)=>{
    if(err) return console.log(err.message);
    if(results.affectedRows===1){
        console.log("插入数据成功");
    }

})

node加文件名执行文件,成功后会输入插入数据成功。如上图

数据库中增加了quit这行数据

 更新用户数据的两种方法

  1. const user={id:5,username:'smart',password:'123456'}
    // 定义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("更新数据成功")
        }
    })
    
  2.  const user={id:5,username:'jood',password:'abcbca'}
    const sqlStr='update users set ? where id=?'
    db.query(sqlStr,[user,user.id],(err,results)=>{
        if(err) return console.log(err.message);
        if(results.affectedRows===1){
            console.log("更新数据成功")
        }
    })

删除数据的两种方法

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("数据删除成功")
    }
})

数据库展示

 一般采用标记删除的方法对数据进行处理

// 推荐使用标记删除的方法,模拟删除
const sqlStr='update users set status=? where id=?'
db.query(sqlStr,[1,4],(err,results)=>{
    if(err) return console.log(err.message);
    if(results.affectedRows===1){
        console.log("标记删除成功")
    }
    })

展示最终所有代码

// 导入mysql模板
const mysql=require('mysql')
const db=mysql.createPool({
    host:'127.0.0.1',
    user:'root',
    password:'admin123',
    database:'my_db_01',
})
// 测试mysql能否正常工作

/* db.query('SELECT 1',(err,results)=>{
    if(err) return console.log(err.message);
    console.log(results);
}) */
// 查询users表中所有的数据
/* const sqlstr='select * from users'
db.query(sqlstr,(err,results)=>{
    if(err) return console.log(err.message);
    // 执行的结果是数组
    console.log(results);
})
 */


// 向users表中,新增一条数据
/* const user={username:'smart',password:'pcc123'}
// 定义待执行的sql语句
const sqlStr='insert into users(username,password) values(?,?)'
// 执行sql语句
db.query(sqlStr,[user.username,user.password],(err,results)=>{
    if(err) return console.log(err.message)
// 如果执行的是insert into 插入语句,那么执行results是个对象
// 可以通过affectedRows来判断
    if(results.affectedRows===1) {
        console.log("插入数据成功");
    }
}) */

// 插入数据的便捷方法
// 数据对象的每个属性和数据表的字段一一对应,那么可以使用下列方法
/* const user={username:'quit',password:'pcc123'}
// 定义待执行的sql语句
const sqlStr='insert users set ?'
// 执行sql语句
db.query(sqlStr,user,(err,results)=>{
    if(err) return console.log(err.message);
    if(results.affectedRows===1){
        console.log("插入数据成功");
    }

})
 */

// 更新用户数据
/* const user={id:5,username:'smart',password:'123456'}
// 定义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("更新数据成功")
    }
}) */


// 更新数据的简便方式
/* console.log("正在更新数据....");
setTimeout(() => {
    const user={id:5,username:'jood',password:'abcbca'}
const sqlStr='update users set ? where id=?'
db.query(sqlStr,[user,user.id],(err,results)=>{
    if(err) return console.log(err.message);
    if(results.affectedRows===1){
        console.log("更新数据成功")
    }
})
}, 2000); */


// 删除数据
/* 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("数据删除成功")
    }
}) */


// 标记删除
// 推荐使用标记删除的方法,模拟删除
const sqlStr='update users set status=? where id=?'
db.query(sqlStr,[1,4],(err,results)=>{
    if(err) return console.log(err.message);
    if(results.affectedRows===1){
        console.log("标记删除成功")
    }
    })

 

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐