Sintak Dasar
Di bawah ini adalah sintak dasar dari perintah Order By clause di MySQL:
SELECT column_name1, column_name2, column_name3, ..., column_nameN FROM table_name WHERE [condition] ORDER BY [column_name1, column_name2, column_name3, ..., columnN] [ASC | DESC];
Penjelasan sintak:
- column_name1, column_name2, column_name3, dan seterusnya adalah kolom-kolom yang akan ditampilkan. Apabila Anda ingin menampilkan semua kolom, Anda tinggal mengganti column_name menjadi tanda "*" (tanpa tanda petik)
- table_name adalah nama table yang akan ditampilkan datanya. Anda dapat menggunakan lebih dari satu table atau istilahnya disebut Join Table.
- condition adalah kriteria atau kondisi yang akan Anda terapkan pada select statement. Ini bersifat opsional.
- Order By clause digunakan untuk mengurutkan data berdasarkan kolom-kolom, baik itu secara ascending (ASC) maupun descending (DESC). Apabila Anda tidak menyertakan opsi ASC atau DESC, maka secara default data akan diurutkan secara ascending.
Contoh
Misalkan Anda telah memiliki sebuah table "employee" dengan data-data sebagai berikut:
+-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 002 | Naura | P | Bandung | 2000000 | HRD | | 003 | Ahmad | L | Semarang | 5000000 | ACC | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+ 5 rows in set (0.07 sec)
Dari data-data diatas,
- Tampilkan semua data dari table "employee", dan urutkan berdasarkan employee_name secara ascending.
Untuk menampilkan data sesuai dengan kriteria diatas, Anda dapat menjalankan query berikut ini:
mysql> SELECT * FROM employee -> ORDER BY employee_name; +-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 003 | Ahmad | L | Semarang | 5000000 | ACC | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 002 | Naura | P | Bandung | 2000000 | HRD | | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+ 5 rows in set (0.00 sec)
Atau Anda juga bisa menggunakan query di bawah ini:mysql> SELECT * FROM employee -> ORDER BY 2; +-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 003 | Ahmad | L | Semarang | 5000000 | ACC | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 002 | Naura | P | Bandung | 2000000 | HRD | | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+ 5 rows in set (0.00 sec)
Angka 2 setelah Order By adalah posisi atau urutan dari kolom employee_name pada table "employee" - Tampilkan semua data dari table "employee", dan urutkan berdasarkan employee_name secara descending.
Untuk menampilkan data sesuai dengan kriteria diatas, Anda dapat menjalankan query berikut ini:
mysql> SELECT * FROM employee -> ORDER BY employee_name DESC; +-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 005 | Nurul | P | Tegal | 4500000 | FIN | | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 002 | Naura | P | Bandung | 2000000 | HRD | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 003 | Ahmad | L | Semarang | 5000000 | ACC | +-------------+---------------+--------+----------+---------+------------+ 5 rows in set (0.00 sec)