Menggunakan Order By Clause Di MySQL

0
Pada Panduan Tutorial MySQL kali ini, kita akan membahas lebih detail tentang Penggunaan Order By Clause. Order By clause digunakan untuk mengurutkan data dari hasil Select statement.

Sintak Dasar


Di bawah ini adalah sintak dasar dari Order By Clause di MySQL:

SELECT nama_kolom1, nama_kolom2,...
FROM nama_tabel
[WHERE kondisi]
ORDER BY nama_kolom1 [ASC|DESC], nama_kolom2 [ASC|DESC],..

Penjelasan sintak:

  • nama_kolom1, nama_kolom2, dan seterusnya adalah kolom-kolom yang akan ditampilkan.
  • nama_tabel adalah tabel yang akan ditampilkan datanya.
  • Anda dapat menambahkan kondisi atau filter pada Where clause.
  • Anda dapat menambahkan parameter ASC pada Order By clause jika Anda ingin mengurutkan data secara ascending, dan parameter DESC jika menginginkan secara descending. Secara default, jika tidak menyertakan opsi ini, maka data akan diurutkan secara ascending.

Contoh

Misalkan Anda telah memiliki sebuah tabel "pegawai" dengan data-data sebagai berikut:

+------------+---------------+---------------+-----------+------+----------+------------+
| id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
+------------+---------------+---------------+-----------+------+----------+------------+
| P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
| P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
| P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
| P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
| P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
| P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
| P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
| P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
| P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
| P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
+------------+---------------+---------------+-----------+------+----------+------------+

Dari data-data diatas, Coba Anda:

  • Tampilkan data semua pegawai, dan urutkan berdasarkan nama lengkap secara ascending. Untuk menampilkan data sesuai kriteria tersebut, Anda dapat menggunakan query berikut ini:
    mysql> SELECT *
        -> FROM pegawai
        -> ORDER BY nama_lengkap ASC;
    +------------+---------------+---------------+-----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
    +------------+---------------+---------------+-----------+------+----------+------------+
    | P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
    | P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
    | P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
    | P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
    | P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
    | P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
    | P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
    | P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
    | P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
    | P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
    +------------+---------------+---------------+-----------+------+----------+------------+
    10 rows in set (0.04 sec)
    
    Atau Anda juga dapat menggunakan query yang berikut ini:
    mysql> SELECT id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen
        -> FROM pegawai
        -> ORDER BY nama_lengkap;
    +------------+---------------+---------------+-----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
    +------------+---------------+---------------+-----------+------+----------+------------+
    | P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
    | P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
    | P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
    | P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
    | P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
    | P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
    | P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
    | P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
    | P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
    | P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
    +------------+---------------+---------------+-----------+------+----------+------------+
    10 rows in set (0.00 sec)
    

    Cara lainnya adalah dengan menggunakan nomor urut kolom yang akan ditampilkan.
    mysql> SELECT id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen
        -> FROM pegawai
        -> ORDER BY 2;
    +------------+---------------+---------------+-----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
    +------------+---------------+---------------+-----------+------+----------+------------+
    | P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
    | P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
    | P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
    | P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
    | P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
    | P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
    | P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
    | P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
    | P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
    | P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
    +------------+---------------+---------------+-----------+------+----------+------------+
    10 rows in set (0.00 sec)
    
  • Tampilkan data semua pegawai, dan urutkan berdasarkan nama lengkap secara descending. Untuk menampilkan data sesuai dengan kriteria tersebut, Anda dapat menggunkan query di bawah ini:
    mysql> SELECT id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen
        -> FROM pegawai
        -> ORDER BY nama_lengkap DESC;
    +------------+---------------+---------------+-----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
    +------------+---------------+---------------+-----------+------+----------+------------+
    | P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
    | P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
    | P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
    | P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
    | P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
    | P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
    | P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
    | P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
    | P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
    | P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
    +------------+---------------+---------------+-----------+------+----------+------------+
    10 rows in set (0.00 sec)
    

    Atau Anda juga dapat menggunakan query seperti di bawah ini:
    mysql> SELECT id_pegawai, nama_lengkap, jenis_kelamin, alamat, umur, gaji, departemen
        -> FROM pegawai
        -> ORDER BY 2 DESC;
    +------------+---------------+---------------+-----------+------+----------+------------+
    | id_pegawai | nama_lengkap  | jenis_kelamin | alamat    | umur | gaji     | departemen |
    +------------+---------------+---------------+-----------+------+----------+------------+
    | P005       | Sri Rahayu    | P             | Surabaya  |   25 |  8000000 | ACC        |
    | P003       | Nurul Hikmah  | P             | Semarang  |   20 |  4000000 | HR         |
    | P001       | Nursalim      | L             | Jakarta   |   27 | 15000000 | IT         |
    | P006       | Naura Krasiva | P             | Magelang  |   21 |  3000000 | HR         |
    | P002       | Iskiyati      | P             | Bandung   |   23 |  7000000 | MKT        |
    | P008       | Irwan Gunawan | L             | Tangerang |   30 | 11000000 | FIN        |
    | P010       | Andi Lala     | L             | Bogor     |   23 |  6000000 | FIN        |
    | P007       | Ana Fauziyah  | P             | Tegal     |   22 |  4500000 | SLS        |
    | P009       | Ali Amrullah  | L             | Jakarta   |   28 |  8500000 | IT         |
    | P004       | Ahmad Fatoni  | L             | Cirebon   |   26 | 10000000 | IT         |
    +------------+---------------+---------------+-----------+------+----------+------------+
    10 rows in set (0.00 sec)
    

Sekian Panduan Tutorial MySQL tentang Penggunaan Order By Clause. Semoga bermanfaat & Happy Learning MySQL.

Salam,

Nursalim

0 Comments