当前位置:首页 > 编程技术 > node.js > 正文内容

node连接MySQL数据库模块-操作MySQL数据库

曾经2年前 (2022-05-02)node.js1096

配置mysql模块
1、打开根目录,打开终端,初始化执行npm init -y;
2、下载mysql: npm i mysql;

操作数据库
1、导入mysql模块;
2、建立和MySQL数据库的联系
3、测试mysql模块是否正常工作
4、查询 users 表中所有数据
5、插入数据到 users 表中
6、修改用户信息
7、删除用户信息

// 1.导入mysql模块
const mysql = require('mysql')

// 2.建立和MySQL数据库的联系
const db = mysql.createPool({
    host: '127.0.0.1', //数据库的ip地址
    user: 'root', //登录数据库的账号
    password: 'hoshi1234', //登录数据库的密码
    datebase: 'my_dv_01' //指定要操作那个数据库
})

// 3.测试mysql模块是否正常工作
db.query('select 1',(err, results) => {
    // mysql工作期间报错了
    if(err) return console.log(err.message);

    // 能够正常执行SQL语句
    console.log(results);
    // 返回 [ RowDataPacket { '1': 1 } ]
})


// 4.查询 users 表中所有数据
const sqlStr = 'select * from my_dv_01.users'
db.query(sqlStr ,(err, results) => {
    // mysql工作期间报错了
    if(err) return console.log(err.message);

    // 能够正常执行SQL语句
    console.log(results);
    // 返回 users表的字段
})


// 5.插入数据到 users 表中

// 要插入到表中的数据
const user = { usersname: 'benben', password:'886886' }

// 待执行的 SQL语句 ,英文问号 ? 代表占位符(SQL语法)
const sqlStr2 = 'insert into users (usersname, password) VALUES (?,?)'

// 使用数组的形式,依次为 ? 占位符指定具体的位置
db.query(sqlStr2, [user.usersname , user.password],(err, results) => {
        // mysql工作期间报错了
        if(err) return console.log(err.message);

        // 如果执行的是insert into这个插入语句,则results是一个对象
        // 可以通过results.affectedRows判断是否成功
        if(results.affectedRows === 1) {
            console.log('插入数据成功');
            // 打开MySQL的users表格也能看到新数据
            // 当前数据只有4条,本条数据id为什么是5?
            // 因为之前有过4的数据,但是被删除了,id具有唯一性,删除了也不能被其他数据使用
        }
})


// 插入数据的便捷方式
const user = { usersname: 'niuniu', password:'000000' }

// 定义待执行的 SQL 语句
const sqlStr = 'insert into my_dv_01.users set ?'

// 执行 SQL 语句
db.query(sqlStr, user,(err, results) => {
        
        if(err) return console.log(err.message);
        if(results.affectedRows === 1) {
            console.log('插入数据成功');
        }
})


// 如何更新用户的信息(UPDATE 语句用于更新表中已存在的记录)

// 要插入到表中的数据
const user = { id: 6, usersname: '犇犇', password:'000111' }

// 定义SQL语句
const sqlStr = 'update my_dv_01.users set usersname=?, password=? where id=?'

// 执行SQL语句
db.query(sqlStr,[user.usersname, user.password, user.id], (err, results) => {
    if(err) return console.log(err.message);
    if(results.affectedRows === 1) {
        console.log('插入数据成功');
    }
})

// 更新用户信息的便捷方式(数据对象的每个属性和字段一一对应的情况下可使用)
const user = { id: 6, usersname: '夸夸牛', password:'000111' }

// 定义SQL语句
const sqlStr = 'update my_dv_01.users set ? where id=?'

// 执行SQL语句
db.query(sqlStr,[user, user.id], (err, results) => {
    if(err) return console.log(err.message);
    if(results.affectedRows === 1) {
        console.log('插入数据成功');
    }
})


// 删除数据
// 定义SQL语句
const sqlStr = 'delete from my_dv_01.users where id=?'

// 执行SQL语句
// SQL语句中有多个占位符,则必须使用数组为每个占位符指定具体的值
// 如果只有一个占位符,则可以省略数组
db.query(sqlStr,5,(err,results) => {
    if(err) return console.log(err.message);
        if(results.affectedRows === 1) {
            console.log('删除数据成功');
        }
})


// 标记删除
// 使用delete语句会把数据真正删除掉,非常危险,一般情况下推荐使用标记删除,类似于修改status字段的状态,比如更新成1表示删除;

// 定义SQL语句
const sqlStr = 'update my_dv_01.users set status=? where id=?'

// 执行SQL语句
db.query(sqlStr,[1, 3],(err, results) => {
    if(err) return console.log(err.message);
            if(results.affectedRows === 1) {
                console.log('标记删除成功');
            }
})


扫描二维码推送至手机访问。

版权声明:本文由珍惜发布,如需转载请注明出处。

本文链接:https://www.zp68.com/article/9.html

分享给朋友:
返回列表

没有更早的文章了...

下一篇:node-mysql防止SQL注入的方法

“node连接MySQL数据库模块-操作MySQL数据库” 的相关文章

node.js的MD5加密模块

直接在NODE中引入md5依赖包:下载安装md5依赖包npm install md5md5加密实例:var md5 =require("md5"); //设置加密字符串 var passWord="if(1==1){...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。