Sequelize,Node.js 和 MySQL:基本查询

阅读时长 6 分钟读完

前言

随着互联网时代的不断发展,Web 应用程序越来越复杂。前端技术框架如雨后春笋一般迅速发展,提供了更快速、简单、灵活、可复用的开发方式。为了满足复杂的业务需求,后端技术也需要不断向前发展,因为 Web 应用程序的核心业务往往集中在后台。Node.js 自诞生以来,得到广泛的应用,尤其是在 Web 应用程序的后台开发中。

MySQL 是一种流行的开放源代码的关系型数据库管理系统,在企业和互联网中得到广泛使用。在 MySQL 中,我们经常需要执行各种各样的查询,例如查询一些关键字、根据条件进行过滤、查找条目等等。在本文中,我们将讨论如何在 Node.js 中使用 Sequelize 来简化 MySQL 的基本查询操作。

Sequelize

Sequelize 是一个简单而强大的 ORM 库,用于在 Node.js 应用程序中访问关系型数据库。Sequelize 为我们提供了一个高级的 API,可以用来完成以下任务:

  • 定义模型,以便于 Sequelize 了解表格结构。
  • 执行查询操作。
  • 执行添加、修改和删除操作。
  • 进行数据迁移。

使用 Sequelize 可以让我们更便捷、高效地操作 MySQL 数据库。下面让我们来看看 Sequelize 如何与 Node.js 和 MySQL 搭配使用。

为了使用 Sequelize,我们需要先安装 Node.js 和 Sequelize,并在数据库中创建表格。

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

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

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

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

在上述代码中,我们定义了一个 User 模型,它具有两个属性:name 和 email。然后,我们调用 .sync() 方法来同步数据库,以创建一个 user 表格。

一旦表格被创建,我们就可以使用 Sequelize 来执行各种基本查询操作了。

基本查询

我们将介绍如何在 Sequelize 中执行以下查询操作:

  • 查找所有条目
  • 按条件查找条目
  • 使用 WHERE 子句查找条目
  • 对结果进行排序和分页
  • 使用聚合函数计算总数和平均值
  • 联表查询

查找所有条目

要查找表格中的所有条目,我们可以使用 .findAll() 方法。该方法返回一个 promise,它将提供一个包含所有条目的数组。

按条件查找条目

要按条件查找条目,我们可以在 .findAll() 方法中指定一个 where 对象。该对象可以包含一个或多个属性,每个属性都是具有一个值和一个运算符的对象。例如,要按 name 属性查找所有用户,可以执行以下查询:

使用 WHERE 子句查找条目

如果条件非常复杂,我们可以使用 WHERE 子句来构建更复杂的查询。我们可以使用 .query() 方法将原始 SQL 查询传递给 Sequelize。

对结果进行排序和分页

要对结果进行排序和分页,我们可以在 .findAll() 方法中指定一个 order 和 limit。

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

在上面的示例中,我们将结果按 name 降序排列,并将结果限制为 10。

使用聚合函数计算总数和平均值

要使用聚合函数计算总数和平均值,我们可以使用 .count() 和 .sum() 方法。

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

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

在上面的示例中,我们计算了 user 表格中用户的总数和年龄的总和。

联表查询

要进行联表查询,我们需要在查询中包含一个或多个关联对象。关联对象是定义了不同表之间关系的对象。我们可以使用 belongsTo/hasOne 和 hasMany/hasMany 来创建关联。

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

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

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

在上面的示例中,我们定义了 User 和 Pet 模型,并将它们以“用户拥有多个宠物”的关系关联起来。我们可以使用 .findAll() 查询用户和他们的宠物。

结论

在本文中,我们介绍了如何在 Node.js 中使用 Sequelize 来访问 MySQL 数据库。我们讨论了 Sequelize 的基本查询操作,包括查找所有条目、按条件查找条目、使用 WHERE 子句查找条目、对结果进行排序和分页、使用聚合函数计算总数和平均值,以及联表查询。我们希望这些信息对您有所帮助,并能够在数据库操作方面提供更方便、可靠的解决方案。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66fdc9b74471362601822bac

纠错
反馈