SQL SELECT TOP, LIMIT, ROWNUM

SQL SELECT TOP 子句


  • SELECT TOP 子句用于指定要返回的记录数量。
  • SELECT TOP子句在包含数千条记录的大型表上很有用。返回大量记录会影响性能。

注:并不是所有的数据库系统都支持SELECT TOP子句。MySQL支持LIMIT子句来选择有限数量的记录,而Oracle使用ROWNUM。

SQL Server / MS Access 语法

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的


MySQL语法:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

实例

SELECT *
FROM Persons
LIMIT 5;

Oracle 语法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

实例

SELECT *
FROM Persons
WHERE ROWNUM <=5;

演示数据库


在本教程中,我们将使用著名的Northwind示例数据库。

以下是”Customers” 表中的数据:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL SELECT TOP 实例


以下SQL语句从”Customers” 表中选择前两条记录:

实例

SELECT TOP 2 * FROM Customers;

SQL SELECT TOP PERCENT 实例


以下SQL语句从 “Customers” 表中选择前50%的记录:

实例

SELECT TOP 50 PERCENT * FROM Customers;

SQL TOP,LIMIT和ROWNUM示例


以下SQL语句从”Customers”表中选择前三个记录:

SELECT TOP 3 * FROM Customers;

以下SQL语句显示了使用LIMIT子句的等效示例:

SELECT * FROM Customers
LIMIT 3;

以下SQL语句显示了使用ROWNUM的等效示例:

SELECT * FROM Customers
WHERE ROWNUM <= 3;

SQL TOP PERCENT示例


以下SQL语句从”Customers”表中选择记录的前50%:

SELECT TOP 50 PERCENT * FROM Customers;

添加一个条件


以下SQL语句从”Customers”表中选择国家为”Germany”的前三条记录:

SELECT TOP 3 * FROM Customers
WHERE Country=Germany;

以下SQL语句显示了使用LIMIT子句的等效示例:

SELECT * FROM Customers
WHERE Country=Germany
LIMIT 3;

以下SQL语句显示了使用ROWNUM的等效示例:

SELECT * FROM Customers
WHERE Country=Germany AND ROWNUM <= 3;

为什么要LIMIT你的查询结果


LIMIT作为一种简单的分页方法,主要是为了减少数据返回的时间,如果您查询一个非常大的表(例如一个有数十万或数百万行的表)而不使用限制,那么您可能会等待很长时间才能显示所有的结果,所以使用LIMIT可以减少查询数据返回的时间,提高效率。

作者:andy,如若转载,请注明出处:https://www.web176.com/sql/12793.html

(0)
打赏 支付宝 支付宝 微信 微信
andy的头像andy
上一篇 2023年3月8日
下一篇 2023年3月8日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注