数据库管理工具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 是一套易于使用的图形化 PostgreSQL 数据库管理工具。使用强劲的 SQL 编辑器创建和运行查询、函数和使用多功能的数据编辑工具管理你的数据。Navicat for PostgreSQL 能连接到任何本机或远程版本 7.3 或以上的 PostgreSQL 数据库服务器,并支持所有 PostgreSQL 数据库对象。

点击下载Navicat for PostgreSQL 最新试用版

保持结果集易于管理

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

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

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

最前 N 个的查询

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

扫描二维码关注公众号,回复: 12892605 查看本文章
  • 查找薪酬最高的前 10 名员工
  • 查找盈利最多的前 20 名客户
  • 查找系统中的前 3 个用户

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

最前 5 个唯一的 Job ID

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

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

给定日期最接近的行

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

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

最后 N 个的查询

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

最后 5 个唯一的 Job ID

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

给定日期之前最接近的行

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

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

猜你喜欢

转载自blog.csdn.net/qq_42444778/article/details/115064202