SQL SELECT TOP, LIMIT, ROWNUM 子句

SELECT TOP, LIMIT, ROWNUM 子句用于指定返回记录的数量。对于数据库查询的结果集数量很大的时候,规定返回的数量非常有用,既可以减轻数据库的压力,又可以节省网络传输的时间,常常用于对查询结果分页操作。

注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。

 

1. SQL Server / MS Access 语法

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

SQL Server 范例

SELECT TOP 50 PERCENT *
FROM Websites;

 

2. MySQL 语法

SELECT column_name(s)
FROM table_name
LIMIT number;

MySQL 范例

SELECT *
FROM Persons
LIMIT 5;

 

3. Oracle 语法

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

Oracle 范例

SELECT *
FROM Persons
WHERE ROWNUM <=5;

样本数据库

在本教程中,我们将使用 CodeBaoku 样本数据库。

下面是选自 "Websites" 表的数据:

+----+---------------+---------------------------+-------+---------+
| id | name          | url                       | alexa | country |
+----+---------------+---------------------------+-------+---------+
|  1 | Google        | https://www.google.cm/    |     1 | USA     |
|  2 | 淘宝          | https://www.taobao.com/   |    13 | CN      |
|  3 | 编程宝库       | http://www.codebaoku.com/  |  5000 | USA     |
|  4 | 微博           | http://weibo.com/         |    20 | CN      |
|  5 | Facebook      | https://www.facebook.com/ |     3 | USA     |
|  7 | stackoverflow | http://stackoverflow.com/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

 

4. MySQL SELECT LIMIT 范例

下面的 SQL 语句从 "Websites" 表中选取前两条记录:

SELECT * FROM Websites LIMIT 2;

执行结果:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
+----+--------------+---------------------------+-------+---------+

 

5. SQL Server SELECT TOP PERCENT 范例

在 Microsoft SQL Server 中还可以使用百分比作为参数。

下面的 SQL 语句从 websites 表中选取前面百分之 50 的记录:

以下操作在 Microsoft SQL Server 数据库中可执行。

SELECT TOP 50 PERCENT * FROM Websites;

LIKE 操作符用于在 WHERE 子句的搜索列中指定模糊匹配的模式。LIKE 操作符后面的模式通常包含常规字符和通配符字符。SQL LIKE 语法:SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern。