目录
下载安装mysql,检查是否安装成功
下载安装navicat
下载
安装
使用
数据库简介
什么是数据库
两大阵营-数据库分类
理解关系型数据库
MySQL简介
操作数据库-用navicat
新建数据库
新建数据表
编辑字段
添加数据
学习使用SQL语句
在navicat中运行sql - 添加数据
打开sql编辑区
学习 sql中的insert into 命令
sql-delete语句-删除数据
格式
示例
sql-update语句-修改数据
sql-select-语句-数据查询
作用
格式
where子句
node.js操作mysql
安装包
使用步骤
node操作mysql-查询操作
node操作mysql-添加操作
node操作mysql-修改操作
node操作mysql-删除操作
了解一下软删除
模块化封装
封装模块
测试
首页 web前端 js教程 聊聊node怎么操作MySQL数据库(增删改查)

聊聊node怎么操作MySQL数据库(增删改查)

Feb 28, 2023 pm 07:52 PM
mysql node.js 数据库

node怎么操作MySQL数据库?下面本篇文章带大家了解一下node项目中MySQL数据库增删改查的方法,希望对大家有所帮助!

聊聊node怎么操作MySQL数据库(增删改查)

下载安装mysql,检查是否安装成功


image.png

net start mysql
登录后复制
  • 启动mysql
  • 可在桌面右键我的电脑进入计算机管理查看mysql是否已经成功运行 【相关教程推荐:nodejs视频教程

image.png

下载安装navicat


功能:为我们提供连接、操作mysql数据库的功能

下载

www.navicat.com.cn/products#na…

安装

双击,一路next

使用

找到应用程序,点击启动

image.png

如果 连接测试通过,接下来就可以点击确定按钮,正式连入mysql了。image.png

连入后的效果如下:

image.png

数据库简介


什么是数据库

英文: database 保存和管理数据的仓库就是数据库。

什么是数据? 文件,图片,视频,订单,用户名,密码等等。

这些数据都需要有专门的地方来保存和管理。

在我们没有学习数据库技术之前,我们使用的数据都是以文件系统(db.json)的方式保存的。我们需要一个专门的软件来管理我们的数据, 这就是数据库。

image.png

两大阵营-数据库分类

  • 关系型数据库,代表产品:

    • MySQL
    • Oracle
    • Sql server
    • DB2
  • 非关系型数据库

    • redis 键值存储数据库
    • HBaise列存储数据库
    • mongodb 面向文档数据库
    • neo4j 图形数据库
    • Elasticsearch 搜索引擎存储

参考:数据库使用排名 db-engines.com/en/ranking

image.png

理解关系型数据库

在关系型数据库中,存在三级关系:

  • 数据库
  • 数据表
  • 字段

类比excel

image.png

  • 每一列都是一类数据 --- 字段
  • 每一行代表一条数据 --- 记录
数据库excel文件
数据库excel文件
数据表excel文件中的某一个sheet
表结构:字段sheet中的表头:列

MySQL简介

image.pngMySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品 。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

  • 体积小、速度快、总体拥有成本低,一般中小型网站的开发都选择 MySQL 作为网站数据库。
  • 搭配 PHPApache 可组成良好的开发环境。

3p技术:php,asp,jsp

操作数据库-用navicat


新建数据库

image.png

在弹出的窗口中填写数据库名即可。

image.png点击确定之后,会在左侧的数据库列中看到上面创建成功的数据库。

新建数据表

image.png

点击 "新建表", 然后在开始设置字段

image.png

主键: 作用是区别一条数据和其它数据。(它相当于人的身份证号)

设置字段完成之后,点击上图左上角所示的保存按钮,就会进一步弹出对话框,让填写表的名字。

我们填入user

image.png

编辑字段

image.png

添加数据

image.png

一条内容输入完成后,按下tab,会自动进入下一条记录的输入

学习使用SQL语句


结构化查询语言(Structured Query Language)简称SQL,用来操作关系型数据库:

  • 是一种数据库查询和程序设计语言,用来存取数据以及查询、更新、和管理关系型数据库。
  • .sql是数据库脚本文件的扩展名。

最常用的用于数据操作的sql语句有四类,分别对应对数据的四种操作:

  • 增(create)(例如:用户注册)
  • 删(delete) (例如:删除订单)
  • 改(update) (例如:修改密码)
  • 查(select , read) (例如:信息搜索)

在navicat中运行sql - 添加数据


打开sql编辑区

image.png

然后:

image.png

学习 sql中的insert into 命令

格式:

 insert into 表名(字段名1,字段名2,....)  values (值1,值2,....)
登录后复制

注意:

  • 字段的顺序要和值的顺序是完全匹配的

  • 字段列表可以不与真实数据表中的字段完全相等,

    • 可以省略一些不必要的字段
    • 顺序与不需要与定义表时的顺序一致
  • 如果是字符串类型的字段,其值要加"",如果是数值类型的字符串,其值不需要加“”

示例:

insert into stu (sex, weight, name) values ('男', 60, '庞凯')
登录后复制

sql-delete语句-删除数据


格式

 delete  from 表名  where 删除条件复制代码
登录后复制

注意:不指定条件将删除所有数据

示例

-- 删除id为14的同学
delete from stu where id=14

-- 删除的时候,不加条件,将删除stu表中的全部记录
delete from stu
登录后复制

sql-update语句-修改数据


格式

update 表名 set 字段1=值1, 字段2=值2,...  where 修改条件
登录后复制

注意:

- 要修改的值使用键值对来表示 
- 多个字段用,分隔
- 不指定条件,将修改当前表中全部的记录
登录后复制

示例

-- 修改id为1的同学的年龄为53
update stu set age=53 where id = 1

-- 修改id为1的同学的年龄为35,身高为160
update stu set age=35,height=160 where id = 1

-- 如果修改的时候,不加条件,则会修改全部的数据
update stu set weight = 60
登录后复制

sql-select-语句-数据查询


作用

把数据从数据库查出来

格式

SELECT  字段名1, 字段名2, .....  FROM 表名  WHERE <条件表达式>
登录后复制

示例

# 查询部分字段SELECT id,name,age FROM stu
# 查询所有字段SELECT * FROM stu
# 带条件的查询SELECT * FROM 表名 WHERE 条件1 and 条件2
登录后复制

where子句


select field1, field2... from 表名 查询表中的所有数据

where 可以使用条件来筛选查询出的结果

-- 查询所有的学生
select * from stu

-- 查询所有学生的id,name,height
select id,name,height from stu

-- 带条件的查询
select * from stu where 条件

-- 查询所有的男同学
select * from stu where sex=&#39;男&#39;

-- 查询id为2的男同学
select * from stu where id=2

-- 查询年龄大于50的同学
select * from stu where age > 50

-- 查询年龄大于50岁的男同学
select * from stu where age>50 and sex=&#39;男&#39;

-- 查询年龄在30~60之间的同学,包括30和60
select * from stu where age>=30 and age<=60
select * from stu where age between 30 and 60
登录后复制

node.js操作mysql


通过mysql这个包来操作mysql数据库。

安装包

mysql模块是一个第三方模块,专门用来操作MySQL数据库。

# 安装
npm i mysql
登录后复制

参考:www.npmjs.com/package/mys…

使用步骤

要想用这个包连接数据库,首先要确保在电脑有mysql(phpstudy 还要启动mysql服务)

一共需要4个步骤:

  • 加载 MySQL 模块

  • 创建 MySQL 连接对象

  • 连接 MySQL 服务器

  • 执行SQL语句

var mysql = require(&#39;mysql&#39;);

var connection = mysql.createConnection({
  host     : &#39;localhost&#39;,   // 你要连接的数据库服务器的地址
  port     : 3306,// 端口号
  user     : &#39;root&#39;,        // 连接数据库服务器需要的用户名
  password : &#39;root&#39;,        // 连接数据库服务器需要的密码
  database : &#39;gz61&#39;      //你要连接的数据库的名字
});

connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log(&#39;数据库连接失败&#39;)
  // 没有错误对象提示连接成功
  console.log(&#39;mysql数据库连接成功&#39;)
});
登录后复制

参考地址: www.npmjs.com/package/mys…

node操作mysql-查询操作


执行查询类型的SQL语句,查询结果(result)是一个数组,每个单元是对象,对象的属性是数据表的字段名。

// 1. 加载mysql
const mysql = require(&#39;mysql&#39;);
// 2. 创建连接对象
const conn = mysql.createConnection({
    // 对象的属性名字不能改变
    host: &#39;localhost&#39;,
    port: 3306,
    user: &#39;root&#39;,
    password: &#39;root&#39;,
    database: &#39;gz61&#39;
});
// 3. 连接到MySQL服务器
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log(&#39;数据库连接失败&#39;)
  // 没有错误对象提示连接成功
  console.log(&#39;mysql数据库连接成功&#39;)
});
// 4. 执行SQL语句
let sql = &#39;select id,name,age from stu&#39;;
connection.query(sql, (err, result, fields) => {
    if (err) throw err; // throw err 相当于 return console.log(err);
    console.log(result); // result就是查询结果
});
登录后复制

node操作mysql-添加操作


执行添加类型的SQL语句,查询结果(result)是一个对象,该对象中有两个属性要关注:

  • affectedRows: 受影响行数
  • insertID: 查询数据的主键值
// 1. 加载mysql
const mysql = require(&#39;mysql&#39;);
// 2. 创建连接对象
const conn = mysql.createConnection({
    // 对象的属性名字不能改变
    host: &#39;localhost&#39;,
    port: 3306,
    user: &#39;root&#39;,
    password: &#39;root&#39;,
    database: &#39;gz61&#39;
});
// 3. 连接到MySQL服务器
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log(&#39;数据库连接失败&#39;)
  // 没有错误对象提示连接成功
  console.log(&#39;mysql数据库连接成功&#39;)
});

let sql = &#39;insert into users (name,password) values("小王","snv")&#39;
connection.query(sql, (err, result) => {
    if (result.affectedRows > 0) {
        console.log(&#39;添加成功,新数据的id为:&#39; + result.insertId);
    } else {
        console.log(&#39;添加失败&#39;);
    }
});
登录后复制

node操作mysql-修改操作


执行修改类型的SQL语句,查询结果(result)是一个对象,该对象中有 affectedRows 属性,表示本次修改操作影响到的行数。

// 1. 加载mysql
const mysql = require(&#39;mysql&#39;);
// 2. 创建连接对象
const conn = mysql.createConnection({
    // 对象的属性名字不能改变
    host: &#39;localhost&#39;,
    port: 3306,
    user: &#39;root&#39;,
    password: &#39;root&#39;,
    database: &#39;gz61&#39;
});
// 3. 连接到MySQL服务器
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log(&#39;数据库连接失败&#39;)
  // 没有错误对象提示连接成功
  console.log(&#39;mysql数据库连接成功&#39;)
});
// 更新
// update stu set 字段=值,字段=值 where id=11
let sql = &#39;update users set password="123" where name="小王"&#39;;

conn.query(sql, (err, result) => {
    if (err) throw err;
    if (result.affectedRows > 0) {
        console.log(&#39;修改成功&#39;);
    } else {
        console.log(&#39;修改失败&#39;);
    }
})
登录后复制

node操作mysql-删除操作


执行删除类型的SQL语句,查询结果(result)是一个对象,该对象中有 affectedRows 属性

// 1. 加载mysql
const mysql = require(&#39;mysql&#39;);
// 2. 创建连接对象
const conn = mysql.createConnection({
    // 对象的属性名字不能改变
    host: &#39;localhost&#39;,
    port: 3306,
    user: &#39;root&#39;,
    password: &#39;root&#39;,
    database: &#39;gz61&#39;
});
// 3. 连接到MySQL服务器
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log(&#39;数据库连接失败&#39;)
  // 没有错误对象提示连接成功
  console.log(&#39;mysql数据库连接成功&#39;)
});
// 删除
let sql = &#39;delete from stu where id=1&#39;;

connection.query(sql,(err, result) => {
    if (err) throw err;
    if (result.affectedRows > 0) {
        console.log(&#39;删除成功&#39;);
    } else {
        console.log(&#39;删除失败&#39;);
    }
});
登录后复制

了解一下软删除


做删除 : delete from 表名 条件 会把数据直接从数据库中删除掉!

思路:

  • 不是真的删除,而是设置一个特殊的字段表示当前的状态:正常还是已经删除

image.png

# 目标:把id=16的软删除掉
update stu set isDelete=1 where id=16
登录后复制

模块化封装


分析上面几个单独的功能点,它们基本的语法格式是一致的,只是要执行的sql语句不同而已,所以,我们可以对它们进行一个简单的封装。然后再写测试文件对其进行测试。

涉及两个文件:

  • sql.js
  • sqltest.js

封装模块

模块名:sql.js

// 由于四项(insert,delete,update,select)操作只是sql语句不同

// 1. 加载mysql
const mysql = require(&#39;mysql&#39;);
// 2. 创建连接对象
const conn = mysql.createConnection({
    // 对象的属性名字不能改变
    host: &#39;localhost&#39;,
    port: 3306,
    user: &#39;root&#39;,
    password: &#39;root&#39;,
    database: &#39;gz61&#39;
});
// 3. 连接到MySQL服务器
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log(&#39;数据库连接失败&#39;)
  // 没有错误对象提示连接成功
  console.log(&#39;mysql数据库连接成功&#39;)
});

module.exports = connection
登录后复制

测试

sqltest.js

const conn = require(&#39;./sql&#39;);

conn.query(&#39;select * from users where username="小美1" and userpassword="666"&#39;, (err, data) => {
  console.log(err);
  console.log(data);
  if (data.length > 0) {
    console.log(&#39;用户名密码Ok&#39;);
  } else {
    console.log(&#39;用户名密码error&#39;);
  }
});
登录后复制

更多node相关知识,请访问:nodejs 教程

以上是聊聊node怎么操作MySQL数据库(增删改查)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MySQL:世界上最受欢迎的数据库的简介 MySQL:世界上最受欢迎的数据库的简介 Apr 12, 2025 am 12:18 AM

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL的位置:数据库和编程 MySQL的位置:数据库和编程 Apr 13, 2025 am 12:18 AM

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

为什么要使用mysql?利益和优势 为什么要使用mysql?利益和优势 Apr 12, 2025 am 12:17 AM

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

apache怎么连接数据库 apache怎么连接数据库 Apr 13, 2025 pm 01:03 PM

Apache 连接数据库需要以下步骤:安装数据库驱动程序。配置 web.xml 文件以创建连接池。创建 JDBC 数据源,指定连接设置。从 Java 代码中使用 JDBC API 访问数据库,包括获取连接、创建语句、绑定参数、执行查询或更新以及处理结果。

docker怎么启动mysql docker怎么启动mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中启动 MySQL 的过程包含以下步骤:拉取 MySQL 镜像创建并启动容器,设置根用户密码并映射端口验证连接创建数据库和用户授予对数据库的所有权限

centos安装mysql centos安装mysql Apr 14, 2025 pm 08:09 PM

在 CentOS 上安装 MySQL 涉及以下步骤:添加合适的 MySQL yum 源。执行 yum install mysql-server 命令以安装 MySQL 服务器。使用 mysql_secure_installation 命令进行安全设置,例如设置 root 用户密码。根据需要自定义 MySQL 配置文件。调整 MySQL 参数和优化数据库以提升性能。

MySQL的角色:Web应用程序中的数据库 MySQL的角色:Web应用程序中的数据库 Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

centos7如何安装mysql centos7如何安装mysql Apr 14, 2025 pm 08:30 PM

优雅安装 MySQL 的关键在于添加 MySQL 官方仓库。具体步骤如下:下载 MySQL 官方 GPG 密钥,防止钓鱼攻击。添加 MySQL 仓库文件:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm更新 yum 仓库缓存:yum update安装 MySQL:yum install mysql-server启动 MySQL 服务:systemctl start mysqld设置开机自启动

See all articles