SQL Limit

17 Mar 2025 | 6 分钟阅读

在 SQL 中,用户可以实现 Limit 子句,该子句可用于限制搜索结果。在 Oracle 中,您可以使用 FETCH FIRST n ROWS ONLY 或 ROWNUM 来执行与 Limit 相同的功能。当用户希望在大量满足查询条件的记录按顺序排列时,这一点非常重要。因此,在特定实例中查看有限的记录可能更好。

使用 LIMIT 时需要注意的一些关键点

  • LIMIT 子句在检索结果时限制 SQL 返回的记录数。
  • 重要的是要确保并非所有 SQL 版本都支持该子句。并非所有 SQL 版本都支持 LIMIT 子句。
  • 用户可以通过 SQL 2008 OFFSET/FETCH FIRST 子句来实现 LIMIT 子句。
  • 在实现 LIMIT 子句时,用户应确保 limit/offset 表达式是非负整数。

实现 SELECT LIMIT 的语法

在 SELECT 语句中实现 LIMIT 关键字的语法如下:

参数或参数

  1. Exp:它指定用户希望从表中检索的列或数据值。
  2. Tbls:它指定上面表达式中的列所属的表名。FROM 子句中至少应有一个表,并且该表必须包含 SELECT 语句的列。
  3. WHERE Condn:在 SQL 语句中添加 WHERE Condn 是可选的。目的是实现 WHERE 子句以检索满足所述条件的查询结果。
  4. ORDER BY exp:它也是一个可以使用 SQL 查询实现的异常子句。在 SELECT LIMIT 查询中实现它,以便用户可以安排他们想要检索的记录。exp 包含列名和用于排列记录的值。它可以是升序或降序。
  5. LIMIT:该关键字用于指定结果集中应存在的行数。它将数值作为参数,该数值表示实现 SELECT 查询时显示的记录数。
  6. 例如,如果实现了 LIMIT 10,它将仅返回满足 SELECT 条件的前 10 条记录。这就是实现 ORDER BY 子句变得重要的原因,以便用户可以维护 SELECT 查询返回结果的顺序。
  7. OFFSET offset_value:这是一个可选参数,可以在 LIMIT 子句中使用。它用于确定检索过程将从哪个记录开始。它决定了进行检索的第一行。

如何实现 LIMIT 关键字

  • LIMIT 关键字将结果集显示的记录数设定为上限。
  • 用户需要为 LIMIT 关键字分配一个数值。它可以是 0 或任何其他正数。如果 LIMIT 设置为 0,则结果集中不会返回任何记录。
  • 用户使用 offset 值来指定在表中开始数据检索的记录。
  • Choose Update 或 DELETE 顺序适合与 LIMIT 的语法一起实现。

需要实现 LIMIT 子句

考虑这样一种情况:开发人员希望开发一个应用程序。该应用程序运行在一个庞大的数据库之上,该数据库包含大量满足搜索和检索条件的记录,这会增加加载时间。系统设计人员可以通过固定应用程序将返回的最大记录数来减少加载时间。假设单次搜索中显示的最大记录数为 20。为了强制执行上述场景,以确保满足客户需求。在这种情况下,用户可以实现 LIMIT 关键字,以便每页使用 20 条记录来限制从查询返回的数据。

例如,

让我们考虑一个情况,您有一个 Student 表,为了更好地理解,我们将使用 Limit 子句从结果集中检索有限数量的结果。我们将实现 Limit 子句来执行这些操作。

表格如下

S_IDS_NameS_DeptS_CountryS_Age
100阿曼科学印度19
105Harsh数学英格兰20
110哈希特科学印度17
200Kavya社会研究加拿大18
120Abhay数学印度21
102Ravi英文印度22<

实现 SQL 查询来定义和插入上述表中的数据

输出

SQL Limit

实现 LIMIT 子句

输出

SQL Limit

使用 ORDER BY 子句实现 LIMIT 子句

输出

SQL Limit

当用户希望在不实现 SQL 中的 WHERE 子句的情况下检索选定的结果时,可以使用 Limit 子句运算符。上述查询将返回前 3 名最年长的学生,而无需他们实现条件语句。

将 LIMIT 与 OFFSET 一起使用

LIMIT x OFFSET y 表示跳过前 y 条记录,然后返回接下来的 x 条记录。要实现 OFFSET,用户必须实现 ORDER BY 子句。用户只能通过使用 ORDER 来实现 OFFSET。使用 OFFSET 时,值应大于或等于零。如果值为负数,则查询将返回错误。

上述查询将跳过前两条记录,并返回接下来的 4 条记录。Limit 在上述查询中有两个参数。第一个值被视为 X,它是偏移量。它将跳过 X 条记录;第二个参数是 Y;它指定要返回的下一条 Y 条记录。

输出

SQL Limit

从表中检索第 N 个最高或最低值

limit 函数确定数据库中存储的最高或最低值。

现在我们将研究 LIMIT 在查找最高或最低值中的应用。我们需要检索具有第 N 个最高或最低值的行。在这种情况下,我们可以使用以下 MySQL LIMIT 子句来获得所需的结果。

语法

输出

SQL Limit

MySQL 中的 LIMIT 与 WHERE

用户可以在 SQL 中使用 Limit 关键字时实现 WHERE 子句。它使用户能够指定一个条件,该条件应被表中的 limit 结果集所满足。

输出

SQL Limit

实现 LIMIT 子句的优点

  • Limit 子句的主要功能是指定结果集中的最大行数。即使在最大行数超过满足指定标准的行数的情况下,它也会返回确切的最大行数。即使它们满足 WHERE 子句中的条件,它们也是将从表中返回的唯一一行。
  • 它还可以通过实现主机变量或 SPL 输入的值到局部变量来分配最大值。
  • 如果 LIMIT 子句后跟 ORDER BY 子句,则检索到的记录将根据 ORDER BY 子句进行排列。由于查询结果返回的顺序没有确定性。因此,为了获得特定顺序的结果,用户可以实现 ORDER BY 子句,通过使用特定的记录排列来限制行的顺序,从而获得合格行的固定子集。

对 LIMIT 子句的限制

有一些特定情况会限制 LIMIT 子句的实现。在以下情况下,用户不能实现 LIMIT 子句

  • 定义视图时。
  • LIMIT 子句不能在嵌套 SELECT 语句中实现。
  • 它不能与 FROM 子句中提到的表表达式中的子查询以外的子查询一起实现。
  • 它不能与嵌入在 SPL 例程中的表达式作为单例 SELECT(max=1)中实现的嵌入式 SELECT 查询一起使用,其中嵌入式 SELECT 语句作为表达式实现。