购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.7 限制查询结果

在SELECT子句中使用“*”符号,可以查询到数据表中所有列和所有行的数据。“*”符号在有些时候也会带来不便。例如,在一张数据表中存在多达10万行的数据,用户只想查询前1万行的数据,使用“*”符号会浪费掉查询后9万行数据的时间。

为了解决这一问题,可以限制查询结果,但在不同数据库中SQL命令不尽相同,下面将分别介绍。

2.7.1 在SQL Server数据库中限制查询结果

在SQL Server数据库中使用SELECT语句时,可以使用TOP关键字来限制最多返回多少行。TOP关键字可以指定返回表中的前n行数据,语法格式如下:

参数说明:

TOP n:指定从查询结果集中输出前n行,n是介于0和4 294 967 295之间的整数。

示例09 在SQL Server数据库中,查看goods商品信息表中的前5条数据。

输入:

输出(如图2 . 10所示):

图2.10 在SQL Server数据库中限制查询结果

由于代码中使用了“SELECT TOP 5”语句,因此只会检索前5行数据。

2.7.2 在MySQL数据库中限制查询结果

1.限制查询前n条数据

在MySQL数据库中需要使用LIMIT子句来限制查询结果。LIMIT子句可以对查询结果的记录条数进行限定,控制输出的行数。下面通过具体示例来了解LIMIT的使用方法。

示例10 在MySQL数据库中,查看goods商品信息表中的前5条数据。

输入:

输出(如图2 . 11所示):

图2.11 在MySQL数据库中限制查询结果

2.限制查询n条数据

使用LIMIT还可以从查询结果的中间部分取值。首先要定义两个参数,参数1是开始读取的第1条记录的编号,参数2是要查询记录的条数。

示例11 在MySQL数据库中,查看goods商品信息表从第3条数据开始的5条数据的信息。

输入:

输出(如图2 . 12所示):

图2.12 限制查询n条数据

注意

在查询结果中,第1个结果的记录编号是0,而不是1。

除此之外,还可以使用LIMIT n OFFSET m语句来限制查询结果,n是查询的条数,m是查询的起始位置。

示例12 在MySQL数据库中,查看goods商品信息表从第4条数据开始的2条数据的信息。

输入:

输出(如图2 . 13所示):

图2.13 限制查询n条数据

2.7.3 在Oracle数据库中限制查询结果

在Oracle数据库中需要使用ROWNUM来计算行。

示例13 在Oracle数据库中,查看goods商品信息表中的前5条数据。

输入:

输出(如图2 . 14所示):

图2.14 在Oracle数据库中限制查询结果 ZRu81hgeMjrHyNPggJiTtLRk8UgieL3oqM/16C0L+7KhpMaKfmr2TXhWIYajVEED

点击中间区域
呼出菜单
上一章
目录
下一章
×