TOP, LIMIT, ROWNUM用法

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 中的 SELECT TOP 是等价的

MySQL语法:

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

示例语句

SELECT * FROM member LIMIT 5;

Oracle 语法

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

示例语句

SELECT * FROM member
WHERE ROWNUM <=5;

演示数据库

在本教程中,主要是使用Mysql数据库,虽然和其他数据有一定的差异,不影响对SQL语法的讲解。

相应的脚本请查看上一篇文章:开始前准备环境


以下是 "member" 表中的数据:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三xxx广东1
101110002112333李四xxx北京1
1012100031234567王五xxx广东1
101310004112335张飞xxx广东1
101410005112336关习xxx上海1
101510006112337关平xxx湖南1
101610007112338小李xxx广东1
101710008112339韩飞xxx深圳1
101810009112310刘备xxx三国1
101910010112312吴越xxx广西1
102010011112312韩信xxx南京1
102110012112331张包xxx广东1

SQL SELECT TOP 实例

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

示例语句:

SELECT * FROM member limit 2;

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三www.jhelp.net广东1
101110002112333李四www.jhelp.net北京1

SQL SELECT TOP PERCENT 实例

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

示例语句:

SELECT TOP 50 PERCENT * FROM member;

这个语句只有在SQL Server 或者 Access 中才有效,在mysql或者oracle中是无法执行。

添加一个条件

以下SQL语句从"member"表中选择location为"广东"的前三条记录:

SQL Server 示例语句:

SELECT TOP 3 * FROM member
WHERE location='广东';

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

SELECT * FROM member
WHERE location='广东'
LIMIT 3;

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

SELECT * FROM member
WHERE location='广东' AND ROWNUM <= 3;


查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三www.jhelp.net广东1
101210003abc123www.jhelp.netwww.jhelp.net广东1
101310004112335张飞www.jhelp.net广东1
    腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
    本文链接:https://www.jhelp.net/p/xprR5DGIq4KaSSEp (转载请保留)。
    关注下面的标签,发现更多相似文章