Node.js 第四节:操作mysql数据基本增删改查功能笔记

数据库

安装mysql 数据库(社区版)

使用mysql wordbench 管理数据库

  1. 连接数据库

注意

  • 数据库的名称不能为中文

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

  1. 安装操作 MySQL 数据库的第三方模块(mysql)
  2. 通过mysql 模块 连接到MySQL 数据库
  3. 通过mysql 模块执行SQL 查询
  4. 安装 mysql 模块
    mysql 模块是依托 npm 上的 第三方模块,它提供了在Node.js 项目中连接和操作MySQL 数据库的能力。
    npm install mysql

项目实例

使用mysql模块 建立与MySQL 数据库的连接

  1. npm init -y
  2. npm install mysql
  3. 新建index.js 文件,配置 mysql模块
/**
 * 配置 mysql模块
 */
// 1. 导入mysql 模块
const mysql = require('mysql');
//2.建立与MySQL 数据库的连接

const db = mysql.createPool({
    host:'127.0.0.1',    // 数据库的 IP 地址
    user:'root',         // 登录数据库的账号
    password:'admin123', // 登录数据库的密码
    database:'my_db_01' // 指定要操作哪个数据库
})
  • 1.测试 mysql 模块能否正常工作
db.query('select 1',(err,results) => {
    if(err) return console.log(err.message);
    //只要能打印 [ RowDataPacket { '1': 1 } ],就算成功的执行 SQL 语句
    console.log(results)
})
  • 2.查询users 表中的所有数据
const sqlStr = 'select * from users'
db.query(sqlStr,(err,results) => {
    if(err) return console.log(err.message);
    console.log(results)
})
  • 2.1 查询users 表中指定数据(方式一)
const sqlStr = 'select * from users where id = ?'
db.query(sqlStr,[5],(err,results) => {
    if(err) return console.log(err.message);
    console.log(results)
})
  • 2.2 查询users 表中指定数据(方式二)
const sqlStr = 'select * from users where id = ?'
db.query(sqlStr,[5],(err,results) => {
    if(err) return console.log(err.message);
    console.log(results)
})
  • 3.向users 表插入一条数据
const user = {
    username :'诗宝宝',
    password:'admin456',
}
const sqlStr = 'insert into users (username,password) values(?,?)'

db.query(sqlStr,[user.username,user.password],(err,results) => {
    if(err) return console.log(err.message);
    if(results.affectedRows === 1){
        console.log('插入数据成功!')
    }
})
  • 3.1 插入数据的便捷方式
//1.要插入到users表中的数据对象
const user = { username: 'icygod', password: 'icy88888' }
    //2.待执行的SQL语句,其中英文的?表示占位符
const sqlstr = 'insert into users set ?'
    //3.直接将数据对象当作占位符的值
db.query(sqlstr, user, (err, results) => {
    if (err) return console.log(err.message)
    if (results.affectedRows === 1) { console.log('插入数据成功!') } //成功
})
  • 4.根据唯一id 更新users 表中的数据

//1.要更新的数据对象
const user = {
    id:6,
    username:'魔头',
    password:'123'
}

//2.要执行的sql语句
const sqlstr = 'update users set username = ?,password = ? where id = ?'

//3.调用db.query()执行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('更新数据成功!'); }
})
  • 4.1 更新数据的便捷方式
//1.要更新的数据对象
const user = { id: 7, username: '我是中文', password: '000011' }
    //2.要执行的sql语句
const sqlstr = 'update users set ? where id = ?'
    //3.调用db.query()执行SQL语句的同时,使用数组依次为占位符指定具体的值
db.query(sqlstr, [user, user.id], (err, results) => {
    if (err) return console.log(err.message)
    if (results.affectedRows === 1) { console.log('更新数据成功!'); }
})
  • 5.根据唯一id 删除users表中指定数据
//1.要执行的SQL语句
const sqlstr = "delete from users where id = 4"
    //调用db.query() 执行sql语句的同时,为占位符指定具体的值
    //注意:如果sql语句中有多个占位符,则必须使用数组为每个占位符指定具体值
    //如果sql语句中只有一个占位符,则可以省略数组
db.query(sqlstr, (err, results) => {
    if (err) return console.log(err.message)
    if (results.affectedRows === 1) { console.log('删除数据成功!'); }
})

posted @ 2022-04-12 09:56  会吃鱼的猫123  阅读(135)  评论(0编辑  收藏  举报