MySQL Series : ORDER BY dan LIMIT
1. ORDER BY
Dalam perintah SQL untuk menampilkan data pada suatu tabel kita menggunakan klausa SELECT. Hasil data yang ditampilkan akan diurutkan berdasarkan id. Namun jika kita ingin mengurutkan data berdasarkan urutan field tertentu kita bisa menggunakan klausa ORDER BY. Pada pengurutan menggunakan ORDER BY terdapat dua parameter yaitu Ascending (ASC) dan Descending (DESC).
- ASC digunakan untuk mengurutkan data secara menaik dari yang terkecil sampai yang terbesar atau dari karakter pertama sampai abjad karakter yang terakhir. Secara default ORDER BY menggunakan parameter ASC. Artinya jika kita tidak menggunakan parameter setelah ORDER BY maka data yang dihasilkan akan diurutkan secara ASC.
- DESC digunakan untuk mengurutkan data secara menurun kebalikan dari ASC.
Syntax Dasar :
Contoh :
Kita masih menggunakan tabel pada contoh sebelumnya yaitu tbl_mahasiswa .
+-----------+--------------+------------+--------+---------+ | npm | nama_mhsw | tgl_lahir | ipk | semester| +-----------+--------------+------------+--------+---------+ | 1234 | Vanessa Angel| 2001-05-01 | 3.30 | 5 | | 2345 | Nurhadi | 2002-07-15 | 3.21 | 1 | | 3456 | Aldo | 2005-10-18 | 2.98 | 5 | | 4567 | Burhan | 2007-01-03 | 2.87 | 7 | | 5678 | Samsul | 2008-06-24 | 3.69 | 8 | +-----------+--------------+------------+--------+---------+
Selanjutnya kita akan membuat query SQL untuk menampilkan data mahasiswa dan diurutkan secara menaik (ascending). Kita akan mengurutkan data berdasarkan ipk .
Setelah query dieksekusi maka akan menampilkan data seperti dibawah ini. Data diurutkan secara menaik berdasarkan IPK. Untuk mengurutkan data secara menurun, tinggal diganti saja dari ASC menjadi DESC.
+-----------+--------------+------------+--------+---------+ | npm | nama_mhsw | tgl_lahir | ipk | semester| +-----------+--------------+------------+--------+---------+ | 4567 | Burhan | 2007-01-03 | 2.87 | 7 | | 3456 | Aldo | 2005-10-18 | 2.98 | 5 | | 2345 | Nurhadi | 2002-07-15 | 3.21 | 1 | | 1234 | Vanessa Angel| 2001-05-01 | 3.30 | 5 | | 5678 | Samsul | 2008-06-24 | 3.69 | 8 | +-----------+--------------+------------+--------+---------+
Selanjutnya anda bisa mencobanya sendiri dengan mengurutkan data berdasarkan colum yang lain misalnya kolum nama_mhsw atau kolum semester.
2. MySQL LIMIT
Dalam beberapa kondisi, Anda mungkin tidak ingin menampikan semua baris dari data anda karena banyaknya data, jika Anda hanya ingin mengambil 10 karyawan terbaik yang baru saja bergabung dengan organisasi, mengambil 3 mahasiswa dengan IPK teratas, atau sesuatu seperti itu.
Untuk menangani situasi seperti itu, Anda bisa menggunakan klausa TOP SQL di pernyataan SELECT Anda. Namun klausa TOP hanya didukung oleh sistem database SQL Server dan MS Access.
MySQL menyediakan klausa LIMIT yang setara, sedangkan Oracle menyediakan klausa ROWNUM untuk pernyataan SELECT untuk membatasi jumlah baris yang dikembalikan oleh permintaan.
Syntax Dasar :
Masih menggunakan contoh tabel diatas, kita akan membuat query untuk menampilkan tiga mahasiswa yang mempunyai IPK paling tinggi.
Setelah query dieksekusi makan akan menghasilkan tampilan dibawah ini :
+-----------+--------------+------------+--------+---------+ | npm | nama_mhsw | tgl_lahir | ipk | semester| +-----------+--------------+------------+--------+---------+ | 5678 | Samsul | 2008-06-24 | 3.69 | 8 | | 1234 | Vanessa Angel| 2001-05-01 | 3.30 | 5 | | 2345 | Nurhadi | 2002-07-15 | 3.21 | 1 | +-----------+--------------+------------+--------+---------+
3. LIMIT Row Offset
Kita bisa menggunakan klausa LIMIT menggunakan dua opsi parameter. Ketika dua parameter ditentukan, parameter pertama menentukan offset dari baris pertama untuk menentukan titik awal, sedangkan parameter kedua menentukan jumlah maksimum baris untuk ditampilkan. Offset dari baris awal adalah 0 (bukan 1).
Contohnya kita akan menampilkan data mahasiswa yang mempunyai ipk tertinggi dengan ketentuan titik awal baris adalah 2, dan maksimum baris yang ditentukan adalah 1 sehingga menghasilkan parameter LIMIT 2,1 .
Setelah query dieksekusi maka hasilnya adalah sebagai berikut :
+-----------+--------------+------------+--------+---------+ | npm | nama_mhsw | tgl_lahir | ipk | semester| +-----------+--------------+------------+--------+---------+ | 2345 | Nurhadi | 2002-07-15 | 3.21 | 1 | +-----------+--------------+------------+--------+---------+