SELECT TOP komutu, çağırılacak verilerin sayısını belirtmek için kullanılır. Bu komut binlerce veri içeren tablolarda kullanışlıdır. Çok sayıda kaydın çağırılması performansı etkileyebilir.
NOT: Tüm veritabanı sistemleri SELECT TOP komutunu desteklemez. MySQL sınırlı sayıda veri seçmek için LIMIT komutunu desteklerken, Oracle ROWNUM kullanır.
SQL Server TOP kullanımı:
SELECT TOP sayı |percent sütun (s)
FROM tablo_adı
WHERE Koşul;
MySQL LIMIT kullanımı:
SELECT sütun (s)
FROM tablo_adı
WHERE Koşul
LIMIT sayı;
Oracle ROWNUM kullanımı:
SELECT sütun(s)
FROM tablo_adı
WHERE ROWNUM <= sayı;
Örnek veritabanı üzerinde kullanalım.
KullaniciID |
Ad |
Soyad |
Adres |
Sehir |
Postakodu |
Ulke |
1 |
Safa |
Dedeoğlu |
Necmettin Erbakan Cad. no 8/1 |
İstanbul |
34000 |
Türkiye |
2 |
Fatih |
Turab |
İskele Cad. hastane sok. |
Artvin |
08300 |
Türkiye |
3 |
John |
Doupoint |
Claremont Rd no:8/3 |
Newcastle |
NE2 4AA |
İngiltere |
4 |
Gustavo |
Alfaro |
Cuero y Caicedo, Quito |
New York |
170129 |
Amerika |
5 |
Abel |
Gigli |
Dagmada Waaberi 324/5 |
Moskova |
Jh09010 |
Rusya |
6 |
Xiao |
Chu |
Unnamed Road |
Pekin |
Jk07320 |
Çin |
7 |
Osman |
Ebuselim |
Shara Zaviya Dahmani PO:928 |
Doha |
243512 |
Katar |
8 |
Frank |
Walter |
Trudering-Riem 326/3 |
Münih |
81825 |
Almanya |
Aşağıdaki SQL komutu, ”Musteriler” tablosundaki ilk üç kaydı seçer.
SELECT TOP 3 * FROM Musteriler;
Aşağıdaki SQL komutu, LIMIT parametresini kullanarak aynı sonucu elde eder.
SELECT * FROM Musteriler
LIMIT 3;
Aşağıdaki SQL komutu, ROWNUM parametresini kullanarak aynı sonucu elde eder.
SELECT * FROM Musteriler
WHERE ROWNUM <= 3;
Aşağıdaki SQL komutu, ”Musteriler” tablosundaki kayıtların %50’sini seçer.
SELECT TOP 50 PERCENT * FROM Musteriler;
Aşağıdaki SQL komutu, “Türkiye “olduğu “Musteriler ”tablosundaki ilk üç kaydı seçer.
SELECT TOP 3 * FROM Musteriler
WHERE Ulke ='Türkiye';
Aşağıdaki SQL komutu, LIMIT parametresini kullanarak aynı sonucu elde eder.
SELECT * FROM Musteriler
WHERE Ulke='Türkiye'
LIMIT 3;
Aşağıdaki SQL komutu, ROWNUM parametresini kullanarak aynı sonucu elde eder.
SELECT * FROM Musteriler
WHERE Ulke ='Türkiye' AND ROWNUM <= 3;
İçerik: YUSUF ERDOĞAN