0Pricing
SQL Academy · Ders

LIMIT ve OFFSET

İlk N satırı alın ve sayfalama yapın.

LIMIT ve OFFSET, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Yalnızca Birkaç Satır Getirme

Bazen eşleşen her satırı değil, yalnızca ilk birkaçını istersiniz. LIMIT, sorgunun döndüreceği satır sayısını sınırlar.

Bu, en fazla 5 ürün döndürür.

SELECT name, price
FROM products
LIMIT 5;

ORDER BY Olmadan LIMIT Rastgeledir

LIMIT tek başına size bazı satırlar verir, ancak hangi satırların döndürüleceği belirli değildir. Sonucun anlamlı ve tekrarlanabilir olması için bunu her zaman ORDER BY ile birlikte kullanın.

-- The 5 newest orders, deterministically
SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC
LIMIT 5;

OFFSET ile Satırları Atlama

OFFSET, veritabanına döndürmeden önce belirli sayıda satırı atlamasını söyler. LIMIT ile birlikte sayfalamanın temelini oluşturur.

Bu, ilk 10 satırı atlar ve sonraki 5 satırı döndürür.

SELECT name, price
FROM products
ORDER BY name
LIMIT 5 OFFSET 10;

Sayfalar Oluşturma

Sayfa boyutu 10 olduğunda sayfa numaraları şu şekilde uzaklıklara karşılık gelir:

  • 1. sayfa: OFFSET 0
  • 2. sayfa: OFFSET 10
  • 3. sayfa: OFFSET 20

Formül OFFSET = (page - 1) * page_size şeklindedir.

-- Page 3 with 10 rows per page
SELECT name, price
FROM products
ORDER BY name
LIMIT 10 OFFSET 20;

İşlem Sırası

Veritabanı yan tümceleri şu sırayla uygular: WHERE ile filtreler, ORDER BY ile sıralar, ardından OFFSET ve LIMIT ile kısaltır.

Dolayısıyla her zaman sıralanmış ve filtrelenmiş sonuç içinde sayfalama yaparsınız.

SELECT name, price
FROM products
WHERE price > 0
ORDER BY price DESC
LIMIT 10 OFFSET 0;

LIMIT ALL ve OFFSET 0

LIMIT ALL, "sınır yok" anlamına gelir (LIMIT'i çıkarmakla aynıdır); OFFSET 0 ise hiçbir şeyi atlamaz. Bir değer dinamik olarak oluşturulduğunda bunlar zaman zaman kullanışlı olabilir.

SELECT name
FROM products
ORDER BY name
LIMIT ALL OFFSET 0;

Standart FETCH Sözdizimi

PostgreSQL, SQL standardındaki biçimi de destekler: OFFSET n ROWS FETCH NEXT m ROWS ONLY. LIMIT/OFFSET ile tam olarak aynı işi yapar; yalnızca daha uzun yazılır.

SELECT name, price
FROM products
ORDER BY name
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY;

Büyük OFFSET Değerleri Neden Yavaştır

Büyük bir OFFSET değeri, veritabanının atlanan her satırı yine de tarayıp atmasını gerektirir. OFFSET 100000, yalnızca atmak için 100.000 satır okur; bu da ilerideki sayfalarda yavaşlar.

-- Reads 100000 rows then discards them
SELECT id, name
FROM products
ORDER BY id
LIMIT 10 OFFSET 100000;

Anahtar Kümesi Sayfalaması

Daha hızlı bir seçenek, anahtar kümesi (arama) sayfalamasıdır. Bir konum belirtmek yerine, gördüğünüz son satırı hatırlayıp onun sonrasındaki satırları istersiniz.

Bu yöntem, indeks kullanarak atlama yapmadan doğrudan sonraki sayfaya geçer.

-- Next page after the last seen id (e.g. 5000)
SELECT id, name
FROM products
WHERE id > 5000
ORDER BY id
LIMIT 10;

Kararlı Sayfalar İçin Kararlı Sıralama

ORDER BY sıralamanızda eşit değerler varsa satırlar sayfa yüklemeleri arasında yer değiştirebilir ve yinelenen satırlar veya boşluklar görebilirsiniz. Sayfalamanın tutarlı olması için sıralamayı benzersiz bir anahtarla (örneğin birincil anahtarla) bitirin.

SELECT id, name, price
FROM products
ORDER BY price DESC, id
LIMIT 10 OFFSET 20;

Tek En Üst Satır

LIMIT 1, en pahalı ürün veya en son sipariş gibi tek bir satırı almak için hızlı bir yöntemdir. Bunu uygun ORDER BY ile birleştirin.

SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 1;

Kısa Kontrol

Her sayfada 10 satır gösteriyorsunuz. Hangi yan tümce 3. sayfayı döndürür?

Özet

Sonuçlarınızı artık dilimleyebilirsiniz:

  • LIMIT n satır sayısını sınırlar
  • OFFSET m satırları atlar; OFFSET = (page-1)*size
  • Öngörülebilir sayfalar için her zaman ORDER BY ile birleştirin
  • Hız için büyük konum değerleri yerine anahtar kümesi sayfalamasını tercih edin

Sonraki bölümde bu araçları En İyi N kayıtlarını bulmak için kullanacaksınız.

SELECT name, price
FROM products
ORDER BY name
LIMIT 10 OFFSET 20;

Sıkça Sorulan Sorular

“LIMIT ve OFFSET” dersi ücretsiz mi?

Evet — “LIMIT ve OFFSET” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“LIMIT ve OFFSET” dersinde ne öğreneceğim?

İlk N satırı alın ve sayfalama yapın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“LIMIT ve OFFSET” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. ORDER BY ile Sıralama
  2. Birden Çok Sütuna Göre Sıralama
  3. LIMIT ve OFFSET
  4. En İyi N Kaydı Bulma
← SQL Academy Sayfasına Dön