Hasil Pengurutan
Menggunakan perintah SELECT, hasil dikembalikan dalam urutan yang sama dengan catatan ditambahkan ke database. Ini adalah urutan pengurutan default. Di bagian ini, kita akan melihat bagaimana kita dapat mengurutkan hasil query kita. Pengurutan hanyalah mengatur ulang hasil kueri kami dengan cara yang ditentukan. Penyortiran dapat dilakukan pada satu kolom atau pada lebih dari satu kolom. Ini dapat dilakukan pada nomor, string, serta tipe data tanggal.
Apa itu ORDER BY di MySQL?
MySQL ORDER BY digunakan bersama dengan kueri SELECT untuk mengurutkan data secara teratur. Klausa MySQL ORDER BY digunakan untuk mengurutkan hasil kueri dalam urutan naik atau turun.
SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];
SINI
- "Pernyataan SELECT…" adalah kueri pemilihan biasa
- "|" mewakili alternatif
- "[WHERE condition | GROUP BY` field_name (s) `HAVING condition" adalah kondisi opsional yang digunakan untuk memfilter kumpulan hasil kueri.
- "ORDER BY" melakukan pengurutan kumpulan hasil kueri
- "[ASC | DESC]" adalah kata kunci yang digunakan untuk mengurutkan kumpulan hasil baik dalam urutan naik maupun turun. Catatan ASC digunakan sebagai default.
Apa itu Kata Kunci DESC dan ASC?
ASC adalah singkatan dari ascending |
MySQL DESC adalah kependekan dari descending |
Ini digunakan untuk mengurutkan hasil kueri dalam gaya dari atas ke bawah. |
Ini digunakan untuk mengurutkan hasil kueri dalam gaya bawah ke atas |
Saat mengerjakan tipe data tanggal, tanggal paling awal ditampilkan di atas daftar. |
. Saat mengerjakan tipe tanggal, tanggal terbaru ditampilkan di atas daftar. |
Saat bekerja dengan tipe data numerik, nilai terendah diperlihatkan di atas daftar. |
Saat bekerja dengan tipe data numerik, nilai tertinggi diperlihatkan di atas kumpulan hasil kueri. |
Saat bekerja dengan tipe data string, kumpulan hasil kueri diurutkan dari yang dimulai dengan huruf A hingga huruf Z. |
Saat bekerja dengan tipe data string, kumpulan hasil kueri diurutkan dari yang dimulai dengan huruf Z hingga ke huruf A. |
Kedua kata kunci SQL DESC dan ASC digunakan bersamaan dengan pernyataan SELECT dan klausa MySQL ORDER BY.
Sintaks DESC dan ASC
Kata kunci sortir SQL DESC memiliki sintaks dasar berikut.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
SINI
- PILIH {fieldName (s) | *} FROM tableName (s) adalah pernyataan yang berisi field dan tabel untuk mendapatkan hasil set.
- [Kondisi WHERE] bersifat opsional tetapi dapat digunakan untuk memfilter data sesuai dengan kondisi yang diberikan.
- ORDER BY nama bidang wajib diisi dan merupakan bidang tempat penyortiran akan dilakukan. Kata kunci MySQL DESC menentukan bahwa pengurutan harus dalam urutan menurun.
- [LIMIT] adalah opsional tetapi dapat digunakan untuk membatasi jumlah hasil yang dikembalikan dari kumpulan hasil kueri.
Contoh:
Sekarang mari kita lihat contoh praktis -
SELECT * FROM members;
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil berikut yang ditunjukkan di bawah ini.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 |
Misalkan departemen pemasaran menginginkan detail anggota diatur dalam urutan yang menurun dari Tanggal Lahir. Ini akan membantu mereka mengirim ucapan selamat ulang tahun tepat waktu. Kita bisa mendapatkan daftar tersebut dengan menjalankan query seperti di bawah ini -
SELECT * FROM members ORDER BY date_of_birth DESC;
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil berikut yang ditunjukkan di bawah ini.
Kueri yang sama dalam urutan menaik
PILIH * DARI anggota ORDER BY date_of_birth ASC
Catatan: Nilai NULL berarti tidak ada nilai (bukan nol atau string kosong). Perhatikan cara mereka disortir.
Lebih banyak contoh
Mari pertimbangkan skrip berikut yang mencantumkan semua catatan anggota.
SELECT * FROM `members`;
Menjalankan skrip di atas memberikan hasil berikut yang ditunjukkan di bawah ini.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | NULL |
Misalkan kami ingin mendapatkan daftar yang mengurutkan hasil kueri yang ditetapkan menggunakan bidang gender, kami akan menggunakan skrip yang ditunjukkan di bawah ini.
SELECT * FROM `members` ORDER BY `gender`;
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | NULL |
Anggota "Female" ditampilkan terlebih dahulu diikuti oleh anggota "Male", hal ini karena ketika klausa ORDER BY DESC digunakan tanpa menentukan kata kunci ASC atau MySQL DESC, secara default, MySQL telah mengurutkan hasil kueri yang ditetapkan dalam urutan menaik.
Sekarang mari kita lihat contoh yang melakukan pengurutan menggunakan dua kolom ; yang pertama diurutkan dalam urutan menaik secara default sedangkan kolom kedua diurutkan dalam urutan menurun.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Menjalankan skrip di atas di meja kerja MySQL terhadap myflixdb memberikan hasil sebagai berikut.
Kolom jenis kelamin diurutkan dalam urutan menaik secara default sedangkan kolom tanggal lahir diurutkan dalam urutan secara eksplisit
Mengapa kami dapat menggunakan DESC dan ASC?
Misalkan kita ingin mencetak riwayat pembayaran untuk anggota perpustakaan video untuk membantu menjawab pertanyaan dari meja depan, bukankah lebih logis jika pembayaran dicetak dalam urutan kronologis menurun dimulai dari pembayaran terakhir ke pembayaran sebelumnya?
DESC dalam SQL adalah kata kunci yang berguna dalam situasi seperti itu. Kita dapat menulis kueri yang mengurutkan daftar dalam urutan menurun menggunakan tanggal pembayaran.
Misalkan bagian pemasaran ingin mendapatkan daftar film berdasarkan kategori yang dapat digunakan anggota untuk menentukan film mana yang tersedia di perpustakaan saat menyewa film, bukankah akan lebih logis untuk melihat mengurutkan nama dan judul kategori film secara ascending sehingga anggota dapat dengan cepat mencari informasi dari daftar?
Kata kunci ASC berguna dalam situasi seperti itu; kita bisa mendapatkan daftar film yang diurutkan berdasarkan nama kategori dan judul film dalam urutan menaik.
Ringkasan
- Pengurutan hasil kueri adalah menata ulang baris yang dikembalikan dari hasil kueri yang diatur baik dalam urutan menaik atau menurun.
- Kata kunci DESC dalam SQL, digunakan untuk mengurutkan hasil kueri dalam urutan menurun.
- Kata kunci ASC digunakan untuk mengurutkan hasil kueri yang ditetapkan dalam urutan menaik.
- Baik DESC dan ASC bekerja bersama dengan kata kunci ORDER BY. Mereka juga dapat digunakan dalam kombinasi dengan kata kunci lain seperti klausa WHERE dan LIMIT
- Default untuk ORDER BY ketika tidak ada yang ditentukan secara eksplisit adalah ASC.