在项目中 操作 MySQL
-
安装 MYSQL 数据库 第三方模块(mysql)
-
通过mysql模块 连接到 MySQL数据库
-
通过my sql 模块 执行SQL 语句
npm init -y npm i mysql
配置mysql 模块
// 导入数据库
const mysql = requier('mysql')
// 建立 与 MYSQL 数据库连接
const db =mysql.createPool({
host:'127.0.0.1', //数据库ip地址
user:'root', //登录数据库账号
password:'admin123', //登录数据库密码
database:'my_db_01' //指定摇操作的哪个数据库
})
测试mysql 是否 正常工作
// 厕所 mysql 是否 正常工作
db.query('select 1',(err,result)=>{ //select 1 没有意义 仅测试用
if(err) return console.log(err.message)
console.log(result);
})
操作数据库
插入数据
// 插入数据
const user={username:'zt2',usermessage:'zt123456'}
const queryStr ="insert into users (username,password) values(?,?)"
db.query(queryStr,[user.username,user.usermessage],(err,result)=>{
if(err) return console.log(err.message)
// console.log(result);
if(result.affectedRows ==1) console.log('插入数据成功');
})
插入数据的便捷方式
如果 数据对象的属性 和 数据表 字段 一 一 对应
const user={username:'zt2',password:'zt123456'}
const queryStr ="insert into users set ?"
db.query(queryStr,user,(err,result)=>{
if(err) return console.log(err.message)
// console.log(result);
if(result.affectedRows ==1) console.log('插入数据成功');
})
更新数据
const user={ id:12, username:'xdf',password:'zdnb'}
const sqlStr ="update users set username=?, password=? where id=? "
db.query(sqlStr,[user.username,user.password,user.id],(err,result)=>{
if(err) return console.log(err.message)
// console.log(result);
if(result.affectedRows ==1) console.log('更新数据成功');
})
注意事项
- update 单词
- 如果 数据表中 没有可更新的 项 则不会继续运行
- 执行了 update 语句之后 结果 也是一个 对象 可通过 affectRows 判断是否更新成功
更新数据便捷方式
const user={ id:11, username:'lhh',password:'zdcb'}
const sqlStr ="update users set ? where id=?"
db.query(sqlStr,[user,user.id],(err,result)=>{
if(err) return console.log(err.message)
// console.log(result);
if(result.affectedRows ==1) console.log('更新数据成功');
})
注意事项
- set? where id =>[user,user.id]
删除数据
在删除数据是,推荐根据 id 唯一标识 来删除对应的数据
DELETE FORM 数据表 WHERE
const sqlStr ="delete from users where id=?"
db.query(sqlStr,7,(err,result)=>{
if(err) return console.log(err.message)
// console.log(result);
if(result.affectedRows ==1) console.log('删除数据成功');
})
注意事项
调用 db.query() 执行 SQL语句 为占位符指定具体的值
- sql语句中有多个 占位符 ,则必须使用数组为每个占位符指定具体的值
- 如果 sql 只有一个占位符 则可以省略数组