Node 使用 MySQL

1、安装驱动

使用 npm 进行安装 mysql

$ npm install mysql

2、连接数据库

在以下实例中根据你的实际配置修改数据库用户名、及密码数据库名

test.js 文件

var mysql      = require('mysql');
var connection = mysql.createConnection({host     : 'localhost',user     : 'root',password : '123456789',database : 'test'
});connection.connect();connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {if (error) throw error;console.log('The solution is: ', results[0].solution);
});

执行以下命令输出结果为:

$ node test.js
The solution is: 2

3、数据库操作( CURD )

在进行数据库操作前,你需要提供 Websites 表 SQL 文件websites.sql 导入到你的 MySQL 数据库中。

/*Navicat MySQL Data TransferSource Server         : 127.0.0.1Source Server Version : 50621Source Host           : localhostSource Database       : RUNOOBTarget Server Version : 50621File Encoding         : utf-8Date: 08/10/2023 16:44:07 PM
*/SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
--  Table structure for `websites`
-- ----------------------------
DROP TABLE IF EXISTS `websites`;
CREATE TABLE `websites` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',`url` varchar(255) NOT NULL DEFAULT '',`alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',`country` char(10) NOT NULL DEFAULT '' COMMENT '国家',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ----------------------------
--  Records of `websites`
-- ----------------------------
BEGIN;
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '菜鸟教程', 'http://www.runoob.com/', '4689', 'CN'), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
COMMIT;SET FOREIGN_KEY_CHECKS = 1;

这里测试的 MySQL 用户名为 root,密码为 123456,数据库为 test,需要根据自己配置情况修改。

(1)查询数据

将上面我们提供的 SQL 文件导入数据库后,执行以下代码即可查询出数据

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test' 
}); connection.connect();var  sql = 'SELECT * FROM websites';
//查
connection.query(sql,function (err, result) {if(err){console.log('[SELECT ERROR] - ',err.message);return;}console.log('--------------------------SELECT----------------------------');console.log(result);console.log('------------------------------------------------------------\n\n');  
});connection.end();

执行以下命令输出就结果为

$ node test.js
--------------------------SELECT----------------------------
[ RowDataPacket {id: 1,name: 'Google',url: 'https://www.google.cm/',alexa: 1,country: 'USA' },RowDataPacket {id: 2,name: '淘宝',url: 'https://www.taobao.com/',alexa: 13,country: 'CN' },RowDataPacket {id: 3,name: '菜鸟教程',url: 'http://www.runoob.com/',alexa: 4689,country: 'CN' },RowDataPacket {id: 4,name: '微博',url: 'http://weibo.com/',alexa: 20,country: 'CN' },RowDataPacket {id: 5,name: 'Facebook',url: 'https://www.facebook.com/',alexa: 3,country: 'USA' } ]
------------------------------------------------------------

 

(2)插入数据

可以向数据表 websties 插入数据

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test' 
}); connection.connect();var  addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(0,?,?,?,?)';
var  addSqlParams = ['菜鸟工具', 'https://c.runoob.com','23453', 'CN'];
//增
connection.query(addSql,addSqlParams,function (err, result) {if(err){console.log('[INSERT ERROR] - ',err.message);return;}        console.log('--------------------------INSERT----------------------------');//console.log('INSERT ID:',result.insertId);        console.log('INSERT ID:',result);        console.log('-----------------------------------------------------------------\n\n');  
});connection.end();

执行以下命令输出就结果为

$ node test.js
--------------------------INSERT----------------------------
INSERT ID: OkPacket {fieldCount: 0,affectedRows: 1,insertId: 6,serverStatus: 2,warningCount: 0,message: '',protocol41: true,changedRows: 0 }
-----------------------------------------------------------------

 

(3)更新数据

可以对数据库的数据进行修改

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test' 
}); connection.connect();var modSql = 'UPDATE websites SET name = ?,url = ? WHERE Id = ?';
var modSqlParams = ['菜鸟移动站', 'https://m.runoob.com',6];
//改
connection.query(modSql,modSqlParams,function (err, result) {if(err){console.log('[UPDATE ERROR] - ',err.message);return;}        console.log('--------------------------UPDATE----------------------------');console.log('UPDATE affectedRows',result.affectedRows);console.log('-----------------------------------------------------------------\n\n');
});connection.end();

执行以下命令输出就结果为:

--------------------------UPDATE----------------------------

UPDATE affectedRows 1

-----------------------------------------------------------------

执行成功后,查看数据表,即可以看到更新的数据

 

(4)删除数据

可以使用以下代码来删除 id 为 6 的数据

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test' 
}); connection.connect();var delSql = 'DELETE FROM websites where id=6';
//删
connection.query(delSql,function (err, result) {if(err){console.log('[DELETE ERROR] - ',err.message);return;}        console.log('--------------------------DELETE----------------------------');console.log('DELETE affectedRows',result.affectedRows);console.log('-----------------------------------------------------------------\n\n');  
});connection.end();

执行以下命令输出就结果为

--------------------------DELETE----------------------------
DELETE affectedRows 1
-----------------------------------------------------------------

执行成功后,查看数据表,即可以看到 id=6 的数据已被删除

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/32148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML <select> 标签

实例 创建带有 4 个选项的选择列表: <select><option value ="volvo">Volvo</option><option value ="saab">Saab</option><option value="opel">Opel</option><option value="audi"…

JavaFx异常: Not on FX application thread; currentThread = Timer-0

我的定时器任务中有两个控件&#xff1a; FXML TextArea Display; FXML Label Label_Display; 执行下方代码会抛出&#xff1a;Exception in thread "Timer-0" java.lang.IllegalStateException: Not on FX application thread; currentThread Timer-0 Timer_tas…

xAI与GPT-4:探索宇宙真实本质的AI之战

xAI与GPT-4&#xff1a;AI之战 写在前面第一部分第二部分推动科学研究提升人机交互引发伦理和社会问题 第三部分模型的进一步优化跨领域合作人机融合 最后总结 写在前面 人工智能&#xff08;AI&#xff09;领域的发展一直以来都备受关注&#xff0c;而近期马斯克宣布成立xAI&…

自动化更新导致的各种问题解决办法

由于最近自动化频频更新导致出现各种问题&#xff0c;因此在创建驱动对象代码时改成这种方式 我最近就遇到了由于更新而导致的代码报错&#xff0c;报错信息如下&#xff1a; 复制内容如下&#xff1a; Exception in thread “main” org.openqa.selenium.remote.http.Connecti…

大连交通大学813软件工程考研习题

1.什么是软件生存周期模型?有哪些主要模型? 生存周期模型&#xff1a;描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持&#xff0c;为开发过程中的活动提供统一的政策保证&#xff0c;为参与开发的人员提供帮助和指导&#xff0c;是软件生存周期模型…

Kendo UI for jQuery,一个现代的jQuery UI组件!

Kendo UI for jQuery是什么&#xff1f; Kendo UI for jQuery是完整的jQuery UI组件库&#xff0c;可快速构建出色的高性能响应式Web应用程序。Kendo UI for jQuery提供在短时间内构建现代Web应用程序所需要的工具&#xff0c;从多个UI组件中选择&#xff0c;并轻松地将它们组…

SQL 单行子查询 、多行子查询、单行函数、聚合函数 IN 、ANY 、SOME 、ALL

单行子查询 子查询结果是 一个列一行记录 select a&#xff0c;b&#xff0c;c from table where a >(select avg(xx) from table ) 还支持这种写法,这种比较少见 select a&#xff0c;b&#xff0c;c from table where (a ,b)(select xx,xxx from table where col‘000’ )…

Unity-UGUI优化策略

界面出栈规则&#xff1a; 界面目录导航、策划界面回退需求造成界面套娃问题&#xff0c;夹带一系列层级问题&#xff0c;应该和策划进行友好沟通&#xff0c;避免界面不合理的出栈入栈规则 overdraw&#xff1a; 尽量减少同屏 半透明物体渲染 Unity 之 UGUI优化&#xff08;…

湘大 XTU OJ 1148 三角形 题解(非常详细):根据题意朴素模拟+观察样例分析需要计算几轮 具体到一般

一、链接 1148 三角形 二、题目 题目描述 给一个序列&#xff0c;按下面的方式进行三角形累加&#xff0c;求其和值。 比如序列为 1,2,3,4,5 1 2 3 4 53 5 7 98 12 1620 2848输入 有多组样例。每个样例的第一行是一个整数N(1≤N≤100),表示序列的大小&…

Taro+Vue3,点击按钮把另一个页面分享出去

useShareAppMessage​ 监听用户点击页面内转发按钮&#xff08;Button 组件 openTypeshare&#xff09;或右上角菜单“转发”按钮的行为&#xff0c;并自定义转发内容。等同于 onShareAppMessage 页面生命周期钩子。 使用时&#xff0c;必须为页面配置 enableShareAppMessage…

算法工程师-机器学习面试题总结(5)

什么是信息熵&#xff1f; 信息熵是信息理论中用来衡量一个随机变量的不确定度或者信息量的概念。它是在给定一组可能的事件中&#xff0c;对每个事件发生的概率进行加权平均得到的值。 在信息熵的计算中&#xff0c;概率越大的事件所带来的信息量越小&#xff0c;概率越小的事…

Azure Kinect DK + ROS1 Noetic使用教程

作者&#xff1a; Herman Ye Galbot Auromix 版本&#xff1a; V1.0 测试环境&#xff1a; Ubuntu20.04 更新日期&#xff1a; 2023/08/08 注1&#xff1a; 本文内容中的硬件由 Galbot 提供支持。 注2&#xff1a; Auromix 是一个机器人爱好者开源组织。 注3&#xff1a; 本文在…

【从零学习python 】15.深入了解字符串及字符集编码

文章目录 字符集字符和编码相互转换编码规则 学习目标成员运算符in运算符not in 运算符 进阶案例 字符集 计算机只能处理数字(其实就是数字0和数字1)&#xff0c;如果要处理文本&#xff0c;就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特&#xff08;bi…

『Samba』在Linux中实现高效管理共享文件夹的基本操作与实践

&#x1f4e3;读完这篇文章里你能收获到 Samba 的安装和配置&#xff1a;详细介绍了如何在 Linux 操作系统上安装和配置 Samba 服务器共享文件夹的设置&#xff1a;指导如何选择要共享的文件夹&#xff0c;并为其设置共享名称、路径以及访问权限Samba 用户的创建&#xff1a;提…

中国首份仿生机器人产业全景报告发布!大模型带来加速度,三大指标决定竞争格局

AGI火热发展&#xff0c;让仿生机器人的实现补全了最后一块重要拼图。 一直以来&#xff0c;仿生机器人都代表人类对于科技的一种终极想象&#xff0c;备受产业圈热捧。 马斯克、雷军等&#xff0c;纷纷押注这一赛道。特斯拉全尺寸仿生机器人Optimus、小米全尺寸通用人形机器…

【数据结构】单链表OJ题(一)

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;数据结构 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、移除链表元素 &#x1f4a1;方法一&#xff1a; &#x1f4a1;方法二…

机器学习之鸢尾花的的预测

完整的 鸢尾花预测流程 1.导入数据 2.切分数据集---->将数据集分为 训练集和测试集 3.特征预理---->使用归一化 或者 标准化 ---->因为不改变数据的分布情况&#xff0c;所以不会影响结果 4.训练模型 5.评估模型# 导入 鸢尾花数据 from sklearn.datasets import lo…

nodejs+vue+elementui招聘求职网站系统的设计与实现-173lo

&#xff08;1&#xff09;管理员的功能是最高的&#xff0c;可以对系统所在功能进行查看&#xff0c;修改和删除&#xff0c;包括企业和用户功能。管理员用例如下&#xff1a; 图3-1管理员用例图 &#xff08;2&#xff09;企业关键功能包含个人中心、岗位类型管理、招聘信息…

亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证,联合方案带来约20%性能提升

近日&#xff0c;亚信科技AntDB数据库与苏州库瀚信息科技有限公司自主研发的RISC-V数据库存储解决方案进行了产品兼容测试。经过双方团队的严格测试&#xff0c;亚信科技AntDB数据库与库瀚数据库存储解决方案完全兼容、运行稳定。除高可用性测试外&#xff0c;双方进一步开展TP…

分布式异步任务处理组件(八)

分布式异步任务组件网络通信线程模型设计-- 大概说一下功能场景&#xff1a; 从节点和主节点建立连接&#xff0c;负责和主节点的网络IO通信&#xff0c;通信动作包括投票&#xff0c;心跳&#xff0c;举证等&#xff0c;步骤为读取主节点的信息&#xff0c;写入IO队列中&…