node.js使用mysql2对接数据库

embedded/2025/2/7 22:48:59/

一、引言

        在现代Web开发中,Node.js作为一种高效、轻量级的JavaScript运行时环境,已经广泛应用于后端服务的开发中。而MySQL,作为一个广泛使用的关系型数据库管理系统(RDBMS),提供了强大的数据存储和查询功能。为了将这两者有效地结合起来,我们通常会使用一个名为mysql2的Node.js库。

二、mysql基础

        MySQL是一个开源的关系型数据库管理系统,它使用SQL(Structured Query Language,结构化查询语言)作为数据访问和操作的标准语言。MySQL具有高性能、易于使用、可扩展性强等特点,是Web开发中常用的数据库之一。

        在windows系统中使用,通常要去官网下载,但是在kali中系统会自带数据库。下面我将会以kali自带的数据库来简单了解一下数据库并学习基本的增删改查语句。

 1.mysql通常是部署在我们电脑的3306端口,要想连接数据库我们首先要打开数据库服务,类似于服务端一样。输入如下命令打开,在kali中的密码输入是通过类似python的getpass包的方式进行开发的,所以我们在进入root用户权限时是看不到输入的密码的,但是这并不影响输入。在确认密码正确之后就可以进入root权限。在root权限中我们输入

service mysql start

就可以成功打开数据库。(没有报错就是正常打开)

2.接下来就是要进入连接mysql,进行sql语句的输入。

mysql -uroot -p

输入以下代码并且确认密码之后就可以进入数据库

可以观察到我们已经成功进入了mysql在里面输入sql语句就可以开始操作数据库

 3.创建新的数据库查看都有哪些库(在数据库中输入的任何指令都是大小写不敏感的)

        首先,在我们的mysql中本来就有一些库,我们可以通过

show databases;

可以查看所有的数据库

我们现在可以创建一个新的数据库。通过下面的的指令:

create database yoursqlname;

也可以在这个界面删除某一个数据库,输入:

drop database yoursqlname;

例如接下来我们就以上面的数据库school为例。输入:

use school;

代表我们接下来使用的是这个名为school的数据库

4.创建表格

在school的数据库中,我们创建一个名为student的表格(table),它应该包括学生的姓名(name/char),学号(id/int),年龄(age/int),性别(sex/char)。接下来我们输入

create table student (id int,name varchar(50) not NULL,sex varchar(10) not NULL,age int
);

就可以成功创建一个表格。再输入

select * from school;

可以查看存入表格的所有的信息。

这些是我提前录入的一些信息。

5.student表格基本的增删改查

我们想要增加一个新的学生信息[6,“灰太狼”,“男”,30],就要输入以下的语句。

insert into student(id,name,sex,age) values(6,'灰太狼','男',30);

如果我们的输入顺序和表的输入顺序完全一致,那么我们就可以输入得更加简洁。

insert into student values (6, '灰太狼', '男', 30);

可以通过查询结果看到我们成功增加了id值为6的一列。

我想删除表中id值为2的学生,我可以输入:

delete from student where id=2;

通过where来查找符合我们规则的行,进行操作。

接下来,我想修改喜羊羊的年龄为25,我可以输入:

update student set age=25 where id=1;

与上一个相同的是我们都通过where来进行索引。但同时还用到了set代表我们更新数据库应该更新找到的那一行或者那几行成什么。

最后就是怎么查找,其实我们上面一直在使用查找的功能。select * from student。这个语句会帮我们输出所有的数据。*代表的是查找所有的列,如果我们只想查找id和name我们可以改成selec id,name from student。而我们要筛选某些行同样需要where来筛选,例如我要查询所有的年龄为20的学生的id和name。

到这里我们就成功掌握了mysql一些入门的知识。

三、使用mysql2对接mysql

1.初始化语句

const connection = mysql.createConnection({host : "localhost",user : "root",password : yourpassword,database : "school"
})

在这里我使用的user是root,我们可以查看mysql都支持什么用户。

注意:如果你改变了mysql的端口或者把它部署在别的端口在初始化信息中应该填入port这一部分。

2.创建连接

connection.connect((err)=>{if(err){console.error(`没有连接成功:${err.message}`);return;}console.log('连接成功');//增加操作数据库的代码//关闭数据库程序正常退出connection.end((err)=>{if(err){console.error(`关闭连接失败:${err.message}`);}console.log('成功关闭连接');});   
});

3.操作数据库

    //定义sql语句const query = "select * from student";//运行connection.execute(query,[],(err,result,fields)=>{if(err){console.log(`查询失败:${err}`);return;}//输出查询结果result.forEach((row, index) => {console.log(`Row ${index + 1}:`);console.log(row.id,row.name);});});

最后是运行结果以及完整代码

const mysql = require("mysql2");const connection = mysql.createConnection({host : "localhost",user : "root",password : "kali",database : "school"
})
//连接数据库
connection.connect((err)=>{if(err){console.error(`没有连接成功:${err.message}`);return;}console.log('连接成功');//定义sql语句const query = "select * from student";//运行connection.execute(query,[],(err,result,fields)=>{if(err){console.log(`查询失败:${err}`);return;}//输出查询结果result.forEach((row, index) => {console.log(`Row ${index + 1}:`);console.log(row.id,row.name);});});//关闭数据库程序正常退出
connection.end((err)=>{if(err){console.error(`关闭连接失败:${err.message}`);}console.log('成功关闭连接');
});   });


http://www.ppmy.cn/embedded/160403.html

相关文章

[转]Java面试近一个月的面试总结

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46753275 前言 打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为…

maven如何不把依赖的jar打包到同一个jar?

spring boot项目打jar包部署: 经过以下步骤, 最终会形成maven依赖的多个jar(包括lib下添加的)、 我们编写的程序代码打成一个jar,将程序jar与 依赖jar分开,便于管理: success: 最终…

C++编程语言:抽象机制:模板(Bjarne Stroustrup)

目录 23.1 引言和概观(Introduction and Overview) 23.2 一个简单的字符串模板(A Simple String Template) 23.2.1 模板的定义(Defining a Template) 23.2.2 模板实例化(Template Instantiation) 23.3 类型检查(Type Checking) 23.3.1 类型等价(Type Equivalence) …

Java JDK17 API 离线文档下载

Java JDK17 API 离线文档下载 JavaJDK17API离线文档下载 本仓库提供了一个方便的资源文件下载,即 **Java JDK17 API 离线文档**。该文档是Java开发者在离线环境下查阅JDK17 API的必备工具。无论你是Java初学者还是经验丰富的开发者,这份离线文档都能帮助…

Windows编程:下载与安装 Visual Studio 2010

本节前言 在写作本节的时候,本来呢,我正在写的专栏,是 MFC 专栏。而 VS2010 和 VS2019,正是 MFC 学习与开发中,可以使用的两款软件。然而呢,如果你去学习 Windows API 知识的话,那么&#xff0…

代码随想录二刷|回溯2

回溯 组合问题 方法 组合 题干 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 思路 (1)定义全局变量数组,作为存放组合的数组和存放最终答案的数组 (2&…

Golang: 对float64 类型的变量进行原子加法操作

func AddFloat64(val *float64, delta float64) (new float64) {for {old : *valnew old deltaif atomic.CompareAndSwapUint64((*uint64)(unsafe.Pointer(val)),math.Float64bits(old),math.Float64bits(new),) {break}}return } 这段 Go 语言的代码实现了一个并发安全的浮…

AWS Copilot

AWS Copilot 是一个由 Amazon Web Services (AWS) 提供的命令行工具,它简化了容器化应用程序的部署和管理过程。特别是,对于那些希望使用 AWS Elastic Container Service (ECS) 和 AWS Fargate 部署和管理容器化应用的开发者,AWS Copilot 提供…