Pada tutorial kali ini kita akan membahas bagaimana cara membuat pengurutan atau sort data di MySQL dengan ORDER BY
. Database adalah sebuah kumpulan data yang tersimpan secara terstruktur, baik yang kompleks ataupun yang sederhana, data-data yang tersimpan di database manapun pada akhirnya tetap membutuhkan pengurutan atau sort data di MySQL.
Tujuannya pengurutan atau sort data di MySQL adalah untuk mempermudah keterbacaan data sesuai dengan kebutuhan pengurutan itu sendiri. Pengurutan atau sort data di MySQL dapat dilakukan dengan kueri ORDER BY
.
Berikut ini penggunaan kueri pengurutan data dengan ORDER BY
di MySQL.
SELECT
expression
FROM
table
ORDER BY
column1 [ASC|DESC],
column2 [ASC|DESC],
...;
Code language: CSS (css)
Jika dilihat pada sintaks diatas, anda dapat melakukan pengurutan data di MySQL secara spesifik setelah ORDER BY
dengan menggunakan ASC
atau DESC
, dimana ASC
untuk ascending atau pengurutan dari yang terkecil sampai yang terbesar, dan sebaliknya DESC
untuk descending adalah pengurutan dari yang terbesar sampai yang terkecil.
Baca juga: Menampilkan Data Dari Table Dengan MySQL SELECT FROM
Sebagai contoh jika ingin mengurutkan data dari yang terkecil menggunakan ASC
seperti sintaks dibawah ini.
ORDER BY column ASC
Atau dari yang terbesar menggunakan DESC
seperti sintaks dibawah ini.
ORDER BY column DESC
Secara default atau bawaan, ORDER BY
secara otomatis menggunakan ASC
atau pengurutan dari yang kecil ke yang besar. Sebagai contoh, alih-alih menggunakan kode dibawah ini untuk pengurutan dari yang terkecil:
ORDER BY column ASC
Anda dapat melakukannya tanpa sintaks ASC
seperti dibawah ini.
ORDER BY column
Selain itu, anda dapat melakukan pengurutan lebih dari satu kolom, yaitu dengan menggunakan koma sebagai pemisah diantara kolom-kolom yang ingin diurutkan, sebagai contoh.
ORDER BY
column1,
column2;
Sintaks diatas akan melakukan pengurutan dari yang terkecil sampai yang terbesar berdasarkan kedua kolom tersebut. Anda dapat melakukan pengurutan yang berbeda dari masing-masing kolom dengan cara dibawah ini.
ORDER BY
column1 ASC,
column2 DESC;
Sintaks diatas akan menampilkan data column1 dari yang terkecil, dan column2 dari yang terbesar. Nilai pengurutan dapat berupa string atau integer.
Ketika MySQL mengeksekusi perintah SELECT
dibarengi dengan ORDER BY
, maka MySQL akan mengevaluasi perintah ORDER BY
di akhir setelah FROM
dan SELECT
.
Contoh penggunaan ORDER BY di MySQL
Sebelum memulai cara penggunaan ORDER BY
di MySQL, penulis membuat contoh tabel yang bisa digunakan untuk latihan.
CREATE TABLE 'users' (
'id' mediumint(8) unsigned NOT NULL auto_increment,
'name' varchar(255) default NULL,
'phone' varchar(100) default NULL,
'email' varchar(255) default NULL,
'country' varchar(100) default NULL,
PRIMARY KEY ('id')
) AUTO_INCREMENT=1;
Code language: PHP (php)
Setelah itu masukan data-data berikut dengan sintak SQL dibawah ini.
INSERT INTO `users` (`name`,`phone`,`email`,`country`)
VALUES
("Avram Le","(686) 664-5124","vulputate.velit@icloud.ca","Colombia"),
("Flynn Ferrell","1-287-345-6536","libero@outlook.org","Germany"),
("Seth Pacheco","1-656-828-5525","condimentum@outlook.ca","Russian Federation"),
("Hedy Caldwell","(926) 736-6773","gravida.mauris.ut@hotmail.ca","Austria"),
("Venus Haley","(501) 220-3761","eu.odio.phasellus@aol.couk","Russian Federation");
Code language: JavaScript (javascript)
Berikut ini adalah tampilan data diatas dalam bentuk tabel.
1. Contoh pengurutan menggunakan satu kolom
Dari data diatas, kita akan mencoba pengurutan kolom name menggunakan ASC
, dalam hal ini kolom name bersisi tipe data string, sehingga pengurutan menggunakan alfabet dari A sampai Z.
SELECT id, name FROM users ORDER BY name
Sintaks diatas akan menghasilkan pengurutan data di MySQL berdasarkan kolom name, menampilkan id dan name saja. Berikut ini hasilnya.
Untuk melakukan pengurutan data secara ascending, penggunaan sintaks ASC bersifat opsional, karena ascending adalah pengurutan default atau bawaan.
Sedangkan untuk melakukan pengurutan secara descending, harus dengan menggunakan sintaks DESC untuk mengubah urutan default MySQL, seperti dibawah ini.
SELECT id, name FROM users ORDER BY name DESC
Dari kueri diatas akan menampilkan data sebaliknya berdasarkan urutan huruf bertama kolom name.
2. Contoh pengurutan menggunakan dua kolom
Selanjutnya dibagian ke dua ini kita akan mencoba melakukan pengurutan data di MySQL menggunakan dua kolom yang ada di table users, dimana akan mengurutkan name dan country.
SELECT
id,
name,
country
FROM
users
ORDER BY
country ASC,
name DESC
Kode diatas akan menampilkan id, name, dan country, dimana pengurutan menggunakan dua parameter yaitu country diurutkan secara ascending, dan name diurutkan secara descending. Perlu diketahui, pengurutan akan dimulai diproses berdasarkan parameter yang pertamakali dideklarasikan, seperti sintaks diatas, pengurutan akan dimulai dengan country sebagai ascending.
Hasilya sebagai berikut.
Pada contoh diatas, pengurutan akan dilakukan telebih dahulu pada kolom country.
3. Mengurutkan data berdasarkan perhitungan
Selain menetapkan pengurutan data di MySQL berdasarkan kolom, anda juga dapat menggunakan suatu perhitungan untuk menentukan bagaimana data akan ditampilkan, sebagai contoh, kami telah memiliki satu tabel baru dengan nama penjualan, tabel ini bersisi harga dan jumlah produk yang sudah terjual, sebagai berikut ini.
Jika anda ingin menggunakan data dummy diatas anda bisa menggunakan kueri dibawah ini.
CREATE TABLE `penjualan` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`produk` varchar(255) default NULL,
`harga` mediumint default NULL,
`qty` mediumint default NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1;
INSERT INTO `penjualan` (`produk`,`harga`,`qty`)
VALUES
("Anggur",25832,7),
("Apel",9075,6),
("Jeruk",22211,1),
("Mangga",6903,10),
("Jambu",23979,6);
Code language: JavaScript (javascript)
Dari data tersebut mari kita coba pengurutan berdasarkan perkalian antara harga dan qty untuk menghasilkan subtotal, dimana subtotal yang paling besar ada diawal, dengan kueri dibawah ini.
SELECT
produk,
harga * qty as subtotal
FROM
penjualan
ORDER BY
harga * qty DESC;
Code language: JavaScript (javascript)
Silahkan anda jalankan kueri diatas, maka seharusnya data yang akan tampil adalah data perhitungan yang paling besar, dalam hal ini subtotal.
Demikian tutorial tentang pengurutan data di MySQL menggunakan kueri ORDER BY
, semoga bermanfaat, dan jika ada pertanyaan jangan lupa kirim di komentar ya.