Navicat使用教程:使用SQL限制关键字

原创|行业资讯|编辑:莫成敏|2019-08-20 13:49:47.007|阅读 37 次

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

相关链接:

Navicat for PostgreSQL是一套专为PostgreSQL设计的强大数据库管理及开发工具。它可以在PostgreSQL数据库7.5以上的版本中运行,并且支持大部份最新的PostgreSQL功能,包括触发器、函数检索及权限管理等。Navicat的的功能不仅可以满足专业开发人员的所有需求,而且对PostgreSQL的新手来说也相当容易学习。

点击下载Navicat for PostgreSQL免费版

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

保持结果集可管理

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

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

30table_limit.jpg

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

31limit_records.jpg

前N个查询

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

  • 找到薪酬最高的10名员工

  • 找到前20名最赚钱的客户

  • 找到系统上的前3个用户

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

前5个唯一作业ID

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

32top_job_ids.jpg

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

最接近给定日期的行

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

33closest_dates.jpg

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

底部N个查询

前N个查询的推论是底部N个查询。这些是尝试从结果集中查找底部记录数的查询。我们可以很容易地将我们的Top查询转换为它们的Bottom等价物!

底部5个唯一作业ID

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

34bottom_job_ids.jpg

在给定日期之下的最近行

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

35closest_dates_before.jpg


想要购买Navicat for PostgreSQL正版授权,或了解更多产品信息请点击“咨询在线客服”

扫描关注慧聚IT微信公众号,及时获取最新动态及最新资讯

1563778777.jpg




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录慧都网发表评论登录


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Navicat for PostgreSQL

Navicat for PostgreSQL是一套专为PostgreSQL设计的强大数据库管理及开发工具

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat