SQL ORDER OLEH
SQL ORDER BY klausa digunakan untuk mengurutkan data yang disimpan dalam tabel di database . Pengurutan dapat dilakukan dengan naik, turun, atau berdasarkan beberapa kolom tabel .
Umumnya, urutan pengurutan default adalah urutan menaik.
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
Berikut ini adalah sintaks dari klausa ORDER BY umum:
Contoh:
Mari kita pertimbangkan Pelanggan berikut ini tabel.
ID | NAMA | UMUR | ALAMAT | GAJI |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Siwa tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Kueri di atas akan mengurutkan semua catatan dalam urutan menaik berdasarkan kolom NAMA dan GAJI.
Keluaran:
ID | NAMA | UMUR | ALAMAT | GAJI |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
2 | Siwa tiwari | 22 | Bhopal | 21000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Kueri di atas akan mengurutkan semua record dalam tabel secara menurun berdasarkan kolom NAMA.
Keluaran:
ID | NAMA | UMUR | ALAMAT | GAJI |
2 | Siwa tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
Ada berbagai topik di bawah klausa SQL ORDER BY. Yaitu:
- SQL ORDER OLEH ASC – Mengurutkan data secara menaik
- SQL ORDER MENURUT DESC – Mengurutkan data secara menurun
- SQL ORDER SECARA ACAK – Mengurutkan data acak
- Urutan SQL BERDASARKAN BATAS – Memilih data terbatas dari database
- SQL ORDER BY Beberapa Kolom – Mengurutkan data berdasarkan beberapa kolom.
Mari kita bahas masing-masing secara mendetail.
SQL ORDER OLEH ASC
SQL ORDER OLEH ASC klausa mengurutkan data dalam urutan menaik berdasarkan beberapa kolom. Umumnya, urutan pengurutan default adalah cara menaik.
Contoh:
Mari kita pertimbangkan Pelanggan berikut ini tabel.
ID | NAMA | UMUR | ALAMAT | GAJI |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Siwa tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Kueri di atas akan mengurutkan semua catatan dalam urutan menaik berdasarkan kolom NAMA dan GAJI.
Keluaran:
ID | NAMA | UMUR | ALAMAT | GAJI |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
2 | Siwa tiwari | 22 | Bhopal | 21000 |
SQL ORDER DENGAN DESC
Klausa SQL ORDER BY DESC mengurutkan data dalam urutan menurun berdasarkan beberapa kolom.
Contoh:
Mari kita pertimbangkan Pelanggan berikut ini tabel.
ID | NAMA | UMUR | ALAMAT | GAJI |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Siwa tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Kueri di atas akan mengurutkan semua record dalam tabel secara menurun berdasarkan kolom NAMA.
Keluaran:
ID | NAMA | UMUR | ALAMAT | GAJI |
2 | Siwa tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
SQL ORDER DENGAN BATAS
Klausa SQL ORDER BY LIMIT membantu dalam mengambil sejumlah record tertentu dari tabel database. Hal ini umumnya digunakan dalam situasi di mana ada sejumlah besar tupel yang memenuhi kondisi yang diberikan. Ini menetapkan batas atas jumlah catatan yang sedang diambil.
Untuk menggunakan klausa LIMIT dalam SQL, seseorang harus menggunakan ROWNUM klausa dengannya.
Catatan:Perlu dicatat bahwa klausa LIMIT tidak didukung oleh semua versi SQL.
Klausa ini dapat ditentukan menggunakan SQL 2008 OFFSET atau FETCH FIRST klausa .
Contoh:
Mari kita perhatikan Siswa berikut ini tabel.
RollNo | Nama | Nilai |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
2007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5;
Kueri di atas hanya akan mengembalikan 5 siswa teratas dari tabel Siswa.
Keluaran:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
Klausa LIMIT juga dapat digunakan dengan klausa ORDER BY.
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
Kueri di atas akan menampilkan 3 siswa teratas yang memiliki nilai tertinggi dalam urutan menurun.
Keluaran:
12006 | Anne | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
Operator LIMIT sangat berguna dalam situasi di mana data terbatas perlu diambil tanpa menggunakan pernyataan kondisional apa pun.
Operator LIMIT juga dapat digunakan dengan operator OFFSET.
BATAS dengan OFFSET
Perlu dicatat bahwa nilai OFFSET harus lebih besar dari nol , dan tidak boleh negatif. Jika nilai negatif diberikan, itu akan mengembalikan kesalahan.
Contoh:
Mari kita pertimbangkan tabel Siswa yang sama.
RollNo | Nama | Nilai |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
2007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5 OFFSET 2 ORDER BY RollNo;
Kueri ini akan mengembalikan 5 catatan teratas dari tabel Siswa tidak termasuk 2 entri teratas.
Keluaran:
RollNo | Nama | Nilai |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
2007 | Yusuf | 7 |
BATAS SEMUA
Ada klausa lain yang mirip dengan LIMIT yang dikenal sebagai LIMIT ALL . Klausa LIMIT ALL tidak akan memberikan batasan apa pun dan akan mengembalikan semua entri tabel.
Contoh:
Mari kita perhatikan lagi tabel Siswa yang sama.
RollNo | Nama | Nilai |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
2007 | Yusuf | 7 |
12008 | Alex | 5 |
Kueri:
SELECT * FROM Student LIMIT ALL;
RollNo | Nama | Nilai |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
2007 | Yusuf | 7 |
12008 | Alex | 5 |
SQL ORDER BY Beberapa Kolom
SQL ORDER BY Beberapa Kolom akan mengembalikan entri data di kolom dengan menyortirnya menggunakan beberapa kolom yang telah diberikan dalam kueri.
Ini akan mengurutkan data berdasarkan urutan nama kolom yang telah disediakan setelah klausa ORDER BY. Nama kolom harus ditambahkan sesuai urutan yang diinginkan pengguna untuk melakukan penyortiran.
Beberapa nama kolom dapat ditambahkan dengan memisahkannya menggunakan koma (,). Selain itu, kata kunci ASC atau DESC dapat digunakan untuk menentukan urutan pengurutan.
Contoh:
Mari kita pertimbangkan Karyawan berikut ini tabel yang memiliki empat kolom yaitu id, first_name, last_name, dan salary.
id | nama_depan | nama_belakang | gaji |
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Hijau | 2400 |
4 | Michael | Muller | 3000 |
5 | Maria | Hijau | 2400 |
Kueri:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Keluaran:
id | nama_depan | nama_belakang | gaji |
4 | Michael | L uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G ulang | 2400 |
5 | Maria | G ulang | 2400 |
2 | Ada | L uller | 2400 |
Oleh karena itu, pertama, output telah diurutkan berdasarkan gaji dalam urutan menurun dan kemudian dengan nama belakang dalam urutan menaik. Perlu dicatat bahwa jika ASC atau DESC tidak disebutkan, secara default akan mengurutkan kedua kolom dalam urutan menaik.
Kesimpulan
Jadi, di atas adalah beberapa klausa ORDER BY yang paling penting dan sering digunakan yang digunakan oleh pengembang setiap hari untuk melakukan operasi tertentu pada database dan mengambil data. Klausa-klausa ini dapat digunakan secara individual atau mereka juga dapat digunakan bersama-sama, dalam cara yang digabungkan, untuk menjalankan operasi basis data.