دستور TOP, LIMIT یا ROWNUM در SQL

دستور SELECT TOP

در دستور SELECT TOP برای انتخاب تعدادی رکورد مشخص بالای جدول را عمل میکند.

دستور SELECT TOP در جداول بزرگ با هزاران رکورد مفید است. بازگشت تعداد زیادی رکوردها می تواند بر عملکرد تاثیر بگذارد.

 

توجه: همه سیستم های پایگاه داده از دستور SELECT TOP حمایت نمی کنند. MySQL از شرط LIMIT برای انتخاب تعداد محدودی از رکوردها پشتیبانی می کند، در حالی که اوراکل از ROWNUM استفاده می کند.

ساختار استفاده در SQL Server / MS Access

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

ساختار استفاده در MySQL

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

ساختار استفاده در Oracle

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

در زیر یک انتخاب از جدول " Customers" در پایگاه دادهNorthwind است:

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

مثال TOP, LIMIT و ROWNUM

SELECT TOP 3 * FROM Customers;

3 رکورد انتخاب می شود.

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Alfreds Futterkiste 
Maria Anders 
Obere Str. 57 
Berlin 
12209 
Germany 
Ana Trujillo Emparedados y helados 
Ana Trujillo 
Avda. de la Constitución 2222 
México D.F. 
05021 
Mexico 
Antonio Moreno Taquería 
Antonio Moreno 
Mataderos 2312 
México D.F. 
05023 
Mexico 

دستور SQL زیر مثال معادل با استفاده از دستور LIMIT را نشان می دهد:

SELECT * FROM Customers LIMIT 3;

دستور SQL زیر مثال معادل با استفاده از دستور ROWNUMرا نشان می دهد:

SELECT * FROM Customers WHERE ROWNUM <= 3;

مثال TOP PERCENT

بیانیه SQL زیر اولین 50٪ رکوردها را از جدول " Customers " انتخاب می کند:

SELECT TOP 50 PERCENT * FROM Customers;

46 رکورد انتخاب شد. که چند رکورد به عنوان نمونه نمایش داده می شود.

 

اضافه کردن WHERE به دستور SELECT TOP

دستور SQL زیر اولین سه رکورد را از جدول " Customers" انتخاب می کند، جایی که کشور "آلمان" است:

SELECT TOP 3 * FROM Customers
WHERE Country='Germany'

3 رکورد انتخاب شد.

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
Alfreds Futterkiste 
Maria Anders 
Obere Str. 57 
Berlin 
12209 
Germany 
Blauer See Delikatessen 
Hanna Moos 
Forsterstr. 57 
Mannheim 
68306 
Germany 
17 
Drachenblut Delikatessend 
Sven Ottlieb 
Walserweg 21 
Aachen 
52066 
Germany 

دستور SQL زیر مثال معادل با استفاده از دستور LIMIT را نشان می دهد:

SELECT * FROM Customers WHERE Country='Germany' LIMIT 3;

دستور SQL زیر مثال معادل با استفاده از دستور ROWNUMرا نشان می دهد:

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

نظر شما

مقالات و دروس

به خبرنامه مدرسه طراحی وب ایران بپیوندید

   
   
عضویت
پیام تستی برای گروه نرم افزاری وب مهراز