数据库管理工具Navicat for PostgreSQL 使用教程:如何使用 SQL Limit 关键字

SQL LIMIT 子句可以约束 SELECT 语句返回的行数。对于 SQL Server 或 MS Access 等 Microsoft 数据库,可以使用 SELECT TOP 语句来限制结果。但是,对于大多数关系数据库(DBMS),包括 MySQL/MariaDB、PostgreSQL 和 Oracle,SQL LIMIT 子句可以解决多个问题。在今天的文章中,我们将使用 Navicat for PostgreSQL 来探索其中的一些 LIMIT 的用法。

SQL LIMIT 子句可以约束 SELECT 语句返回的行数。对于 SQL Server 或 MS Access 等 Microsoft 数据库,可以使用 SELECT TOP 语句来限制结果,这是 Microsoft 专有的 SELECT LIMIT 语句。但是,对于大多数关系数据库(DBMS),包括 MySQL/MariaDB、PostgreSQL 和 Oracle,SQL LIMIT 子句可以解决多个问题。在今天的文章中,我们将使用 Navicat for PostgreSQL 来探索其中的一些 LIMIT 的用法。

Navicat for PostgreSQL 最新试用版

保持结果集易于管理

在许多生产和测试数据库中,表大小通常达到数百万行并且有数十列。因此,对数据库运行 SELECT * 查询绝不是一个好主意。将结果保持在一百或一千行可以将结果集保持在更易消化的大小。

Navicat 开发和管理工具默认自动限制结果集,以防止对数据库服务器造成过度负担。当打开表时,你可以看到它的运行情况。在应用程序窗口的底部,显示 Navicat 获取表行时运行的SQL。它以“LIMIT 1000 OFFSET 0”结束,这意味着只显示前 1000 条记录。

数据库管理工具Navicat for PostgreSQL 使用教程:如何使用 SQL Limit 关键字

你可以在“记录”选项屏幕上更改默认要显示的记录数或关闭限制:

数据库管理工具Navicat for PostgreSQL 使用教程:如何使用 SQL Limit 关键字

最前 N 个的查询

顾名思义,最前 N 的查询是那些试图从结果集中查找最前数目的记录的查询。这可能是最前 1 、最前 3 、最前 5 、最前 10 或最前 [任意] 数字。一些常见的例子是:

  • 查找薪酬最高的前 10 名员工
  • 查找盈利最多的前 20 名客户
  • 查找系统中的前 3 个用户

仅使用 ORDER BY 和WHERE 子句而不使用 LIMIT 子句是很难处理这些查询。这是一个例子:

最前 5 个唯一的 Job ID

假设我们想在表中找到最前的唯一 Job ID。这是执行此操作的查询:

数据库管理工具Navicat for PostgreSQL 使用教程:如何使用 SQL Limit 关键字

DISTINCT 关键字确保从结果中删除重复的 ID。

给定日期最接近的行

你可以使用 LIMIT 找到给定日期最接近的行。只需将行日期与给定日期进行比较,对结果进行排序,并将结果限制为你希望查看的行数。以下的查询返回 creation_date 大于 ‘2018-01-01’ 的行:

数据库管理工具Navicat for PostgreSQL 使用教程:如何使用 SQL Limit 关键字

在这种情况下,2018-01-02 是最接近的日期。

最后 N 个的查询

最前 N 个的查询的必然产物是是最后 N 个的查询。这是尝试从结果集中查找最后数目的记录的查询。我们可以很容易地将我们的“最前”查询转换为等效的“最后”查询!

最后 5 个唯一的 Job ID

若要返回最后 5 个唯一 Job ID,你需要做的就是删除 ORDER BY 子句中的 DESC 修饰符。默认情况下,这将按升序(ASC)顺序排序记录:

数据库管理工具Navicat for PostgreSQL 使用教程:如何使用 SQL Limit 关键字

给定日期之前最接近的行

在给定日期之前找到最接近的行同样相当容易。我们只需要将大于 ‘>’ 的运算符更改为小于 ‘<‘,并按降序(DESC)顺序重新排序结果:

数据库管理工具Navicat for PostgreSQL 使用教程:如何使用 SQL Limit 关键字

在今天的文章中,我们使用 Navicat for PostgreSQL 探索了 LIMIT 子句的一些用法。你都学会了吗紧使用吧!点击获取更多免费的文章教程

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月2日
下一篇 2020年8月2日

相关推荐

发表回复

登录后才能评论