IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> day5 在项目中操作 MySQL -> 正文阅读

[大数据]day5 在项目中操作 MySQL

day5 在项目中操作 MySQL

1、在项目中操作步骤

  1. 安装操作 MySQL 数据库的第三方模块(mysql)
  2. 通过 mysql 模块连接到 MySQL 数据库
  3. 通过mysql模块执行SQL语句

2、安装与配置 mysql 模块

mysql 模块是托管于 npm 上的第三方模块,它提供了在 Node 项目中连接和操作 MySQL 数据库的能力。

  • 安装mysql依赖包:
npm install mysql
  • 配置 mysql 模块
// 导入 mysql 模块
const mysql = require('mysql');
// 建立与 mysql 数据库的连接关系
const db = mysql.createPool({
    host:'127.0.0.1', // 数据库的 IP 地址
    user:'root', // 登录数据库的账号
    password:'admin123', // 登录数据库的密码
    database:'my_db_01' // 指定要操作哪个数据库
});
  • 测试 mysql 模块能否正常工作

调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果:

// 测试 mysql 能否正常工作
db.query('select 1',(err,results) => {
    // mysql 模块工作期间报错了
    if(err) return console.log(err.message);
    // 能够成功的执行 sql 语句
    console.log(results); // [ RowDataPacket { '1': 1 } ]
});

3、使用 mysql 模块操作 MySQL 数据库

  1. 查询数据

    查询 users 表中所有的数据

    // 查询 user 表中的所有数据
    const sqlStr = 'select * from users';
    db.query(sqlStr,(err,results) => {
        // 查询失败
        if(err) return console.log(err.message);
        // 查询成功
        console.log(results);
        // 注意:如果执行的是 select 查询语句,则执行的结果是数组
        /* 
        [
            RowDataPacket { id: 1, userName: '张三', password: '123', status: 0 },
            RowDataPacket { id: 2, userName: '李四', password: '456', status: 0 },
            RowDataPacket { id: 3, userName: '小猴', password: '789', status: 0 }
        ]
        */
    });
    
  2. 新增数据(插入)

    向 users 表中新增数据,其中 username 为Spider-Man,password为PCC321

    // 向 users 表中,新增一条数据
    const user = {userName:'新增',password:'xz321'};
    // 定义待执行的 sql 语句
    const sqlStr = 'insert into users (userName,password) value (?,?)';
    // 执行 sql 语句
    db.query(sqlStr,[user.userName,user.password],() => {
        if(err) return console.log(err.message);
        // 新增数据成功
        if(results.affectedRows == 1) {
            console.log('新增用户信息成功');
        }
    });
    

    使用 (?,?)进行占位,执行sql语句时填充真正的值

  3. 新增数据的便捷方式
    // 快速新增数据的快捷方式
    const user = {userName:'新增2',password:'xz123'};
    // 定义待执行的 sql 语句
    const sqlStr = 'insert into users set ?';
    // 执行 sql 语句(执行语句,新增数据,回调函数)
    db.query(sqlStr,user,(err,results) => {
        if(err) return console.log(err.message);
        if(results.affectedRows == 1){
            console.log('快捷新增数据成功!');
        }
    });
    
  4. 更新数据
    // 演示如何更新用户信息
    const user = {id:8,userName:'新增285',password:'xz55123'};
    // 定义 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('更新数据成功!');
        }
    });
    
  5. 更新数据的便捷方式
    // 快捷更新方式
    const user = {id:6,userName:'6666',password:'56565'};
    // 定义 sql 语句
    const sqlStr = 'update users set ? where id=?';
    // 执行sql语句(执行语句,参数,查询ID)
    db.query(sqlStr,[user,user.id],(err,results) => {
        if(err) return console.log(err.message);
        if(results.affectedRows == 1){
            console.log('更新数据成功!');
        }
    });
    
  6. 删除数据

    在删除数据时,推荐根据id这样的唯一标识来删除对应的数据

    // 如果删除数据
    const sqlStr = 'delete from users where id=?'
    /*
    注意:如果sql语句中有多个占位符,则必须使用数据为每一个占位符指定具体的值,如果sql语句中只有一个占位符,则可以省略数组
    */
    db.query(sqlStr,6,(err,results)=>{
        if(err) return console.log(err.message);
        // 执行delete语句之后,结果也是一个对象
        if(results.affectedRows == 1){
            console.log('删除数据成功!');
        }
    });
    
  7. 标记删除

    使用 delete 语句,会把真正的数据从表中删除掉。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作。

    所谓的标记删除,就是表中设置类似于 status 这样的状态字段,来标记当前这条数据是否被删除

    当用户执行了删除的动作时,我们并没有执行 delete 语句把数据删除掉,而是执行了 update语句,将这条数据对应的 status 字段标记为删除即可

    // 标记删除
    const sqlStr = 'update users set status=? where id=?';
    db.query(sqlStr,[1,8],(err,results)=>{
        if(err) return console.log(err.message);
        // 执行delete语句之后,结果也是一个对象
        if(results.affectedRows == 1){
            console.log('标记删除数据成功!');
        }
    });
    
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:09:28  更:2021-09-27 14:10:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:47:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码