Limit clause digunakan untuk membatasi jumlah hasil query. Sebagai contoh, misalkan ada 1000 data pegawai, dan Anda hanya ingin menampilkan 10 data pegawai dengan gaji terbesar (top ten).
Limit clause hanya dapat digunakan pada Select statement saja.
Sintak Dasar
Di bawah ini adalah sintak dasar penggunaan Limit clause pada Select statement:
SELECT nama_kolom1, nama_kolom2, nama_kolom3, ... FROM nama_tabel LIMIT [offset ,] count;
Dimana,
- nama_kolom1, nama_kolom2, nama_kolom3, dan seterusnya adalah nama-nama kolom yang akan ditampilkan.
- nama_tabel adalah tabel yang datanya akan ditampilkan.
- offset digunakan untuk mengambil posisi awal dari sebuah data. Ini bersifat opsional.
- count digunakan untuk mengambil banyaknya data yang akan ditampilkan.
Contoh
Misalkan Anda telah memiliki sebuah tabel pegawai dengan data-data sebagai berikut:
mysql> SELECT * FROM karyawan; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P002 | Iskiyati | P | Bandung | 23 | 7000000 | MKT | | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P009 | Ali Amrullah | L | Jakarta | 28 | 8500000 | IT | | P010 | Andi Lala | L | Bogor | 23 | 6000000 | FIN | +------------+---------------+---------------+-----------+------+----------+------------+ 10 rows in set (0.01 sec)
Dari data-data diatas, coba Anda kerjakan soal-soal berikut ini:
- Tampilkan data-data pegawai yang dimulai dari data ketiga (P003) sebanyak 5 data pegawai?
mysql> SELECT * FROM karyawan -> LIMIT 2, 5; +------------+---------------+---------------+----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+----------+------+----------+------------+ | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | +------------+---------------+---------------+----------+------+----------+------------+ 5 rows in set (0.00 sec)
- Tampilkan 5 data pegawai dengan gaji tertinggi?.
mysql> SELECT * FROM karyawan -> ORDER BY gaji DESC -> LIMIT 5; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P009 | Ali Amrullah | L | Jakarta | 28 | 8500000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | +------------+---------------+---------------+-----------+------+----------+------------+ 5 rows in set (0.03 sec)
- Tampilkan 5 data pegawai dengan usia termuda?
mysql> SELECT * FROM karyawan -> ORDER BY umur -> LIMIT 5; +------------+---------------+---------------+----------+------+---------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+----------+------+---------+------------+ | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | | P010 | Andi Lala | L | Bogor | 23 | 6000000 | FIN | | P002 | Iskiyati | P | Bandung | 23 | 7000000 | MKT | +------------+---------------+---------------+----------+------+---------+------------+ 5 rows in set (0.00 sec)
- Tampilkan 3 besar pegawai laki-laki yang memiliki gaji tertinggi?
mysql> SELECT * FROM karyawan -> WHERE jenis_kelamin = 'L' -> ORDER BY gaji DESC -> LIMIT 3; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | +------------+---------------+---------------+-----------+------+----------+------------+ 3 rows in set (0.00 sec)
Bagi teman-teman pembaca yang ingin berdiskusi, bertanya ataupun memberikan masukan atau pada tutorial ini, silakan untuk menggunakan fasilitas komentar yang telah disediakan.
Salam,
Nursalim
0 Comments