Sequelize ORM 如何执行 SQL 查询

阅读时长 4 分钟读完

什么是 Sequelize ORM

Sequelize 是一个基于 Node.js 的 ORM 框架,可以方便地操作关系型数据库。它支持多种数据库平台,包括 PostgreSQL、MySQL、MariaDB、SQLite 和 MSSQL,具有非常强大的模型定义、查询、事务和关联功能。Sequelize 的使用相对于手动编写 SQL 语句更加简单和方便,同时还能保证 SQL 查询操作的安全性和正确性。

查询语句的创建

Sequelize ORM 使用链式调用的方式构建 SQL 查询语句,首先可以使用模型类对象的 findAll 方法来创建查询语句,如下所示:

这个查询语句将会返回一个 Promise 对象,可以通过 then 方法获取查询结果:

其中,findAll 方法可以接受一些选项参数,如 whereorderlimit 等来限制查询的结果集。

查询条件的设置

Sequelize ORM 提供了两种设置查询条件的方式:

通过对象设置条件

可以通过一个对象来设置查询条件,这个对象的每一个属性都是查询条件的一部分。例如:

上述代码将会查询 User 模型的所有满足 age > 18status = 'enabled' 条件的记录。

通过字符串设置条件

也可以通过字符串的方式来设置查询条件,这种方式比较灵活,可以支持原始 SQL 查询语句中的各种条件操作符。例如:

上述代码将会查询 User 模型的所有满足 age > 18status = 'enabled' 条件的记录。

聚合查询

Sequelize ORM 同样支持各种聚合操作类型,例如 COUNT、SUM、MAX、MIN 和 AVG 等。可以通过 sequelize.fn 方法来表示聚合函数,然后在查询条件中使用这个函数。例如:

上述代码将会查询 User 模型的总记录数,并将结果别名设置为 count

排序和分页

Sequelize ORM 还支持通过 orderlimit 选项来进行结果集的排序和分页操作,这样可以更加方便地对查询结果进行处理。例如:

上述代码将会查询 User 模型的所有满足 age > 18 条件的记录,并按照创建时间倒序排序,取出前 10 条记录。

查询结果的处理

查询操作完成后,可以通过 Promise 对象的 then 方法来获取查询结果,这个结果是一个数组,每一个元素都是一个查询记录的对象,其中每个属性都对应一个数据库字段。例如:

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

上述代码将打印出查询结果中每个记录的 nameage 属性值。

总结

Sequelize ORM 可以方便地生成和执行 SQL 查询语句,具有强大的查询、聚合、排序和分页功能,同时还能保证查询操作的安全性和正确性。在实际项目中,建议使用 Sequelize ORM 来处理关系型数据库的操作,以提高效率和可维护性。

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

纠错
反馈