NodeJS 5 分钟 连接 MySQL 增删改查 🥇
本文简介
本文主要讲解在 Node.js
里如何连接 MySQL
,并分别操作一下 增删改查 。
阅读本文前需要在你电脑里安装一下 MySQL
,最好再安装一个数据库管理工具。我使用的是 MySQL Workbench
,这是一款 MySQL
官方推出的管理工具。你也可以使用 Navicat
,这工具也挺好用的。
初始化项目
在实操之前,首先要有一个库,库是用来存放数据的。
需要注意的是安装 MySQL
时需要记住自己的账号密码,因为连接数据库时需要用到。
mysql 建库建表
建库
我使用的是 MySQL Workbench
的图形化界面来建库,你可以使用其他工具,都差不多的。
单击这个图标,然后输入库的名字,再点击 Apply 就能建库
当然,你也可以使用 SQL
语句建库
建表
创建一个用户表,表里有 id
、用户名(username)、密码(password)、昵称(nickname) 这几个字段。
展开 testdb
,右键 Tables
,选择 Create Table
进入创建表的界面
上面做了这几步操作:
设置表名。
添加字段。
PK
是主键,NN
是不能为空,AI
是自增。点击 Apply 创建表。
如果你不怕麻烦,也可以使用 SQL
语句建表
经过一番操作,表就创建好了。但此时表里没任何数据,接下来会用 Node.js
操作。
初始化 Node 项目
创建一个项目目录,我将其命名为 node-mysql-demo
,然后初始化该项目
此时项目里会多一个 package.json
文件,证明初始化成功了。
安装 MySQL 依赖包
使用上面这条命令安装 MySQL
依赖包。
安装完成后,项目里会多一个 node_modules
文件夹,并且 package.json
里会出现 mysql
以及所安装的版本号。
完成这两步就算是初始化完毕了。
连接 MySQL
在根目录创建 index.js
文件,然后输入以下代码:
上面的代码其实主要就 3 步:
引入
mysql
配置
连接,使用
connect()
方法
其中配置项分别是:
host:域。本地测试的话可以使用
localhost
user:用户。测试一般使用
root
password:密码。安装数据库时会配置的
port:端口。默认是 3306
database:数据库。输入要连接的数据库的名称即可
操作 MySQL
配置并启动连接 MySQL
后,就可以对数据库进行增删改查了。
增 insert
首先先新增几条数据
创建一条 SQL
语句,使用 insert into users
向 users
表添加数据。这条语句其实很简单,翻译一下每个单词就能懂这条语句的内容。
最后使用 query()
方法执行操作。第一个参数是 SQL
语句;第二个参数是回调函数。
数据创建成功后,控制台会打印以下内容:
insertId
是插入的 ID
;affectedRows
是受影响的行数。通常新增成功后,我们可以把 insertId
返回给前端。
查 select
我使用上面的 SQL
语句添加了 3 条数据
因为新增操作比较简单,我就不重复演示了。
查询的操作其实是最繁多的,接下来会一个一个介绍。
查询所有数据
*
代表要查询所有字段。from users
表示要查询 users
表。
此时返回的结果如下所示
查询指定字段
返回结果:
条件查询
模糊查询
模糊查询的关键字是 like
这个语句的意思是把 username
带 o
的数据都查出来
正序
通过指定字段排序,默认是正序(从小到大排列),也可以添加关键字 asc
。
排序的操作是使用 order by
来指定字段。
倒序
倒序使用 desc
关键字。
此时就通过 id
字段的倒序进行排列。
改 update
如果要修改数据,可以使用 update
。
比如我想将 雷猴
的 username
修改成 monkey
。
修改完,返回数据如下:
affectedRows
受影响的函数是 1 行。
此时查询一下数据,可以发现数据修改成功了。
删 delete
真实项目开发应该很少使用到删除。如果需要删除一个用户,通常是修改用户的某个字段,做成“软删除”的效果。
但还是需要知道如何删除数据库的真实内容,所以学吧~
删除 id
为 3
的数据
使用 delete
关键字,并且用 where
指定要操作 id=3
的数据。
删除成功后,控制台会输出:
以上就是 Node.js
操作 MySQL
的入门过程。
关闭连接
最后如果操作完数据库,可以使用 end()
方法关闭与 MySQL
的连接。
版权声明: 本文为 InfoQ 作者【德育处主任】的原创文章。
原文链接:【http://xie.infoq.cn/article/1eee40966b2ef5d695818d33a】。文章转载请联系作者。
评论