LIMIT dan OFFSET
Ambil N baris pertama dan lakukan paging.
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 nmembatasi jumlah barisOFFSET mmelewati baris;OFFSET = (page-1)*size- Selalu gabungkan dengan
ORDER BYagar 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;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
- Mengurutkan dengan ORDER BY
- Mengurutkan Berdasarkan Beberapa Kolom
- LIMIT dan OFFSET
- Menemukan Rekaman Teratas-N