node.js利用mysql2对接数据库

打印 上一主题 下一主题

主题 905|帖子 905|积分 2715

一、引言
        在现代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权限中我们输入
  1. service mysql start
复制代码
就可以乐成打开数据库。(没有报错就是正常打开)

2.接下来就是要进入连接mysql,举行sql语句的输入。
  1. mysql -uroot -p
复制代码
输入以下代码并且确认密码之后就可以进入数据库。

可以观察到我们已经乐成进入了mysql在里面输入sql语句就可以开始操纵数据库。
 3.创建新的数据库检察都有哪些库(在数据库中输入的任何指令都是大小写不敏感的)
        首先,在我们的mysql中本来就有一些库,我们可以通过
  1. show databases;
复制代码
可以检察所有的数据库。

我们现在可以创建一个新的数据库。通过下面的的指令:
  1. create database yoursqlname;
复制代码
也可以在这个界面删除某一个数据库,输入:
  1. drop database yoursqlname;
复制代码
例如接下来我们就以上面的数据库school为例。输入:
  1. use school;
复制代码
代表我们接下来利用的是这个名为school的数据库。
4.创建表格
在school的数据库中,我们创建一个名为student的表格(table),它应该包括学生的姓名(name/char),学号(id/int),年事(age/int),性别(sex/char)。接下来我们输入
  1. create table student (
  2.     id int,
  3.     name varchar(50) not NULL,
  4.     sex varchar(10) not NULL,
  5.     age int
  6. );
复制代码
就可以乐成创建一个表格。再输入
  1. select * from school;
复制代码
可以检察存入表格的所有的信息。

这些是我提前录入的一些信息。
5.student表格基本的增删改查
我们想要增加一个新的学生信息[6,“灰太狼”,“男”,30],就要输入以下的语句。
  1. insert into student(id,name,sex,age) values(6,'灰太狼','男',30);
复制代码
如果我们的输入次序和表的输入次序完全同等,那么我们就可以输入得更加轻巧。
  1. insert into student values (6, '灰太狼', '男', 30);
复制代码
可以通过查询效果看到我们乐成增加了id值为6的一列。

我想删除表中id值为2的学生,我可以输入:
  1. delete from student where id=2;
复制代码
通过where来查找符合我们规则的行,举行操纵。

接下来,我想修改喜羊羊的年事为25,我可以输入:
  1. 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.初始化语句
  1. const connection = mysql.createConnection({
  2.     host : "localhost",
  3.     user : "root",
  4.     password : yourpassword,
  5.     database : "school"
  6. })
复制代码
在这里我利用的user是root,我们可以检察mysql都支持什么用户。

留意:如果你改变了mysql的端口或者把它部署在别的端口在初始化信息中应该填入port这一部分。
2.创建连接
  1. connection.connect((err)=>{
  2.     if(err){
  3.         console.error(`没有连接成功:${err.message}`);
  4.         return;
  5.     }
  6.     console.log('连接成功');
  7. //增加操作数据库的代码
  8. //关闭数据库程序正常退出
  9.     connection.end((err)=>{
  10.         if(err){
  11.             console.error(`关闭连接失败:${err.message}`);
  12.         }
  13.         console.log('成功关闭连接');
  14.     });   
  15. });
复制代码
3.操纵数据库
  1.     //定义sql语句
  2.     const query = "select * from student";
  3.     //运行
  4.     connection.execute(query,[],(err,result,fields)=>{
  5.         if(err){
  6.             console.log(`查询失败:${err}`);
  7.             return;
  8.         }
  9.         //输出查询结果
  10.         result.forEach((row, index) => {
  11.             console.log(`Row ${index + 1}:`);
  12.             console.log(row.id,row.name);
  13.         });
  14.     });
复制代码
最后是运行效果以及完整代码
  1. 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语句
  2.     const query = "select * from student";
  3.     //运行
  4.     connection.execute(query,[],(err,result,fields)=>{
  5.         if(err){
  6.             console.log(`查询失败:${err}`);
  7.             return;
  8.         }
  9.         //输出查询结果
  10.         result.forEach((row, index) => {
  11.             console.log(`Row ${index + 1}:`);
  12.             console.log(row.id,row.name);
  13.         });
  14.     });//关闭数据库步调正常退出connection.end((err)=>{    if(err){        console.error(`关闭连接失败:${err.message}`);    }    console.log('乐成关闭连接');});   });
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表