SQL SELECT TOP, LIMIT, ROWNUM

2022-05-20 15:33 更新

SQL SELECT TOP 子句


  • SELECT TOP 子句用于指定要返回的記錄數(shù)量。
  • SELECT TOP子句在包含數(shù)千條記錄的大型表上很有用。返回大量記錄會影響性能。

注:并不是所有的數(shù)據(jù)庫系統(tǒng)都支持SELECT TOP子句。MySQL支持LIMIT子句來選擇有限數(shù)量的記錄,而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;

演示數(shù)據(jù)庫


 在本教程中,我們將使用著名的Northwind示例數(shù)據(jù)庫。

 以下是"Customers" 表中的數(shù)據(jù):

CustomerID CustomerName ContactName Address City PostalCode Country
1
Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4
Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbk?p Christina Berglund Berguvsv?gen 8 Lule? S-958 22 Sweden

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你的查詢結(jié)果


 LIMIT作為一種簡單的分頁方法,主要是為了減少數(shù)據(jù)返回的時間,如果您查詢一個非常大的表(例如一個有數(shù)十萬或數(shù)百萬行的表)而不使用限制,那么您可能會等待很長時間才能顯示所有的結(jié)果,所以使用LIMIT可以減少查詢數(shù)據(jù)返回的時間,提高效率。


章節(jié)小測


 現(xiàn)在,通過以下題目測測看您對本章節(jié)內(nèi)容的掌握程度吧!

 SQL LIMIT關(guān)鍵字:在本部分測驗中,您將練習(xí)使用 SQL LIMIT 關(guān)鍵字返回所有符合 SQL 語句中指定條件的結(jié)果。

 點擊此處進行測試>>

注:以上測試為付費測試,高級VIP免費


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號