SQL Academy · Pelajaran

LIMIT dan OFFSET

Ambil N baris pertama dan lakukan paging.

Pelajaran 3 dari 413 langkah

LIMIT dan OFFSET adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Mengambil Hanya Beberapa Baris

Terkadang Anda tidak menginginkan setiap baris yang cocok, melainkan hanya beberapa baris pertama. LIMIT membatasi jumlah baris yang dikembalikan kueri.

Ini mengembalikan paling banyak 5 produk.

SELECT name, price
FROM products
LIMIT 5;

LIMIT Tanpa ORDER BY Bersifat Acak

LIMIT saja memberikan beberapa baris, tetapi baris mana yang diberikan tidak ditentukan. Selalu pasangkan dengan ORDER BY agar hasilnya bermakna dan dapat diulang.

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

Melewati Baris dengan OFFSET

OFFSET memberi tahu basis data untuk melewati sejumlah baris sebelum mengembalikan hasil. Jika digabungkan dengan LIMIT, fitur ini menjadi dasar pagination.

Ini melewati 10 baris pertama dan mengembalikan 5 baris berikutnya.

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

Membangun Halaman

Untuk ukuran halaman 10, nomor halaman dipetakan ke offset seperti ini:

  • Halaman 1: OFFSET 0
  • Halaman 2: OFFSET 10
  • Halaman 3: OFFSET 20

Rumusnya adalah OFFSET = (page - 1) * page_size.

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

Urutan Operasi

Basis data menerapkan klausa dalam urutan ini: saring dengan WHERE, urutkan dengan ORDER BY, lalu batasi dengan OFFSET dan LIMIT.

Jadi, Anda selalu melakukan pagination pada hasil yang sudah diurutkan dan disaring.

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

LIMIT ALL dan OFFSET 0

LIMIT ALL berarti "tanpa batas" (sama seperti menghilangkan LIMIT), sedangkan OFFSET 0 tidak melewati apa pun. Keduanya terkadang berguna ketika suatu nilai dibuat secara dinamis.

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

Sintaks FETCH standar

PostgreSQL juga mendukung bentuk yang sesuai dengan standar SQL: OFFSET n ROWS FETCH NEXT m ROWS ONLY. Bentuk ini melakukan hal yang sama seperti LIMIT/OFFSET, hanya dengan lebih banyak kata.

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

Mengapa OFFSET besar lambat

OFFSET besar tetap membuat basis data memindai dan membuang setiap baris yang dilewati. OFFSET 100000 membaca 100.000 baris hanya untuk membuangnya, sehingga menjadi lambat pada halaman yang jauh.

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

Penomoran halaman berbasis kunci

Alternatif yang lebih cepat adalah penomoran halaman berbasis kunci (pencarian). Alih-alih melewati sejumlah baris, simpan baris terakhir yang Anda lihat lalu minta baris yang berada setelahnya.

Cara ini langsung menuju halaman berikutnya menggunakan indeks, tanpa melewati baris satu per satu.

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

Halaman stabil memerlukan pengurutan stabil

Jika ORDER BY Anda memiliki nilai yang sama, posisi baris dapat berubah saat halaman dimuat ulang dan Anda mungkin melihat duplikat atau celah. Akhiri pengurutan dengan kunci unik, seperti kunci utama, agar penomoran halaman tetap konsisten.

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

Satu baris teratas

LIMIT 1 adalah cara cepat untuk mengambil satu baris, seperti produk termahal atau pesanan terbaru. Gabungkan dengan ORDER BY yang tepat.

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

Pemeriksaan singkat

Anda menampilkan 10 baris per halaman. Klausa mana yang mengembalikan halaman 3?

Ringkasan

Kini Anda dapat membagi hasil:

  • LIMIT n membatasi jumlah baris
  • OFFSET m melewati baris; OFFSET = (page-1)*size
  • Selalu gabungkan dengan ORDER BY agar halaman tetap dapat diprediksi
  • Utamakan penomoran halaman berbasis kunci daripada lompatan besar demi kecepatan

Selanjutnya, Anda akan menggunakan alat-alat ini untuk menemukan catatan N teratas.

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

Belajar SQL dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
46
Pelajaran
183

Pertanyaan yang Sering Diajukan

Apakah pelajaran “LIMIT dan OFFSET” gratis?

Ya — teks lengkap “LIMIT dan OFFSET” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “LIMIT dan OFFSET”?

Ambil N baris pertama dan lakukan paging. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “LIMIT dan OFFSET” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengurutkan dengan ORDER BY
  2. Mengurutkan Berdasarkan Beberapa Kolom
  3. LIMIT dan OFFSET
  4. Menemukan Rekaman Teratas-N
← Kembali ke SQL Academy