More

    Penggunaan Query Distinct Pada MySQL

    Penggunaan Query Distinct – Pada tutorial mysql sebelumnya kita telah belajar tentang bagaimana Membuat Database MySQL, dan juga menyimpan, mengubah dan menghapus pada database MySQL. Pada tutorial kali ini, kita akan membahas tentang bagaimana penggunaan query distinct pada mysql.  Query ini digunakan untuk menghapus atau mengeleminasi duplikasi dari hasil tampilan SELECT. Sama seperti query AS, ORDER BY, dan LIMIT, query DISTINCT ini digunakan sebagai tambahan dari query utamanya, yakni SELECT.

    Mempersiapkan table sampel Daftar_dosen.

    +------------+----------------+------------+-----------+
    | NIP_dosen  | nama_dosen     | no_hp      | alamat    |
    +------------+----------------+------------+-----------+
    | 0160436012 | Sabrina Sari   | 0812349900 | Pekanbaru |
    | 0173551078 | Aria Sulistya  | 0880743523 | Jakarta   |
    | 0260432002 | Maya Ari Putri | 0812342342 | Palembang |
    | 0275430005 | Susi Indriani  | 0812656532 | Bogor     |
    | 0360432014 | Suci Syuhada   | 0812341122 | Palembang |
    | 0480432066 | Tia Santrini   | 0812451177 | Padang    |
    | 0576431001 | M. Siddiq      | 0812979005 | Jakarta   |
    | 0770435006 | Rubin Hadi     | 0812567678 | Papua     |
    | 0785531001 | Siswanto       | 0852878006 | Padang    |
    | 0867221006 | Rudi Arwana    | 0823987598 | Jakarta   |
    | 0869437003 | Mustalifah     | 0812338877 | Aceh      |
    | 1080432007 | Arif Budiman   | 0812456345 | Makasar   |
    +------------+----------------+------------+-----------+

    Kalau anda ingin menggunakan table yang sama seperti yang saya gunakan anda bisa menginputnya secara manual atau menggunakan query LOAD DATA INFILE dibawah, untuk file txt dapat diperoleh dari sample data tabel daftar dosen.

    mysql> TRUNCATE daftar_dosen;
    Query OK, 0 rows affected (0.05 sec)
    mysql> LOAD DATA INFILE 'D:\\MySQL\\daftar_dosen.txt'
    INTO TABLE daftar_dosen
    FIELDS TERMINATED BY ','  LINES TERMINATED BY '\r\n';
    Query OK, 12 rows affected (0.04 sec)
    Records: 12  Deleted: 0  Skipped: 0  Warnings: 0
    mysql> SELECT * FROM daftar_dosen;
    +------------+----------------+------------+-----------+
    | NIP_dosen  | nama_dosen     | no_hp      | alamat    |
    +------------+----------------+------------+-----------+
    | 0160436012 | Sabrina Sari   | 0812349900 | Pekanbaru |
    | 0173551078 | Aria Sulistya  | 0880743523 | Jakarta   |
    | 0260432002 | Maya Ari Putri | 0812342342 | Palembang |
    | 0275430005 | Susi Indriani  | 0812656532 | Bogor     |
    | 0360432014 | Suci Syuhada   | 0812341122 | Palembang |
    | 0480432066 | Tia Santrini   | 0812451177 | Padang    |
    | 0576431001 | M. Siddiq      | 0812979005 | Jakarta   |
    | 0770435006 | Rubin Hadi     | 0812567678 | Papua     |
    | 0785531001 | Siswanto       | 0852878006 | Padang    |
    | 0867221006 | Rudi Arwana    | 0823987598 | Jakarta   |
    | 0869437003 | Mustalifah     | 0812338877 | Aceh      |
    | 1080432007 | Arif Budiman   | 0812456345 | Makasar   |
    +------------+----------------+------------+-----------+
    12 rows in set (0.00 sec)

    Cara Penggunaan Query Distinct Untuk Menghapus Duplikasi

    Menghapus duplikasi disini artinya query DISTINCT digunakan hanya untuk memanipulasi tampilan hasil dari tabel. Duplikasi yang dihapus adalah untuk tampilan data, bukan tabel asli dari MySQL.

    Misal, apabila kita hanya ingin menampilkan seluruh kota pada table daftar_dosen.

    mysql> SELECT alamat FROM daftar_dosen ORDER BY alamat;
    +-----------+
    | alamat    |
    +-----------+
    | Aceh      |
    | Bogor     |
    | Jakarta   |
    | Jakarta   |
    | Jakarta   |
    | Makasar   |
    | Padang    |
    | Padang    |
    | Palembang |
    | Palembang |
    | Papua     |
    | Pekanbaru |
    +-----------+
    12 rows in set (0.00 sec)

    Saya menambahkan perintah ORDER BY agar tampilan lebih rapi dengan diurutkan berdasarkan alamat.

    Pada hasil diatas kota yang ditampilkan terdapat duplikasi, hal ini dikarenakan ada beberapa dosen yang mempunyai alamat yang sama. Jika yang kita inginkan bahwa untuk setiap kota yang sama, hasil query harus muncul 1 kali saja, kita akan memerlukan perintah DISTINCT.

    Cara Penulisan Query Distinct

    Contoh penulisan query distinct:

    SELECT DISTINCT nama_kolom FROM nama_tabel;
    • Nama_kolom adalah nama kolom yang akan ditampilkan.
    • Nama_tabel adalah nama tabel untuk kolom yang akan ditampilkan.

    Sehingga untuk contoh kasus diatas, maka kita akan menggunakan query distinct  untuk menampilkan seluruh kota 1 kali saja. Contoh Querynya.

    mysql> SELECT DISTINCT alamat FROM daftar_dosen ORDER BY alamat;
    +-----------+
    | alamat    |
    +-----------+
    | Aceh      |
    | Bogor     |
    | Jakarta   |
    | Makasar   |
    | Padang    |
    | Palembang |
    | Papua     |
    | Pekanbaru |
    +-----------+
    8 rows in set (0.00 sec)

    Dengan penggunaan perintah distinct maka data yang sama hanya ditampilkan satu kali.

    Namun jika kita menambahkan kolom nama_dosen seperti query berikut:

    mysql> SELECT DISTINCT nama_dosen,alamat FROM daftar_dosen 
    ORDER BY alamat;
    +----------------+-----------+
    | nama_dosen     | alamat    |
    +----------------+-----------+
    | Mustalifah     | Aceh      |
    | Susi Indriani  | Bogor     |
    | Aria Sulistya  | Jakarta   |
    | M. Siddiq      | Jakarta   |
    | Rudi Arwana    | Jakarta   |
    | Arif Budiman   | Makasar   |
    | Siswanto       | Padang    |
    | Tia Santrini   | Padang    |
    | Maya Ari Putri | Palembang |
    | Suci Syuhada   | Palembang |
    | Rubin Hadi     | Papua     |
    | Sabrina Sari   | Pekanbaru |
    +----------------+-----------+
    12 rows in set (0.06 sec)

    Terlihat bahwa MySQL tetap menampilkan seluruh isi tabel tanpa ada yang dibuang.  Hal ini dikarenakan query DISTINCT hanya mengeleminasi query yang unik, atau tidak sama dilihat secara baris per baris (per record). Dengan mengkombinasikan nama_dosen dengan alamat, maka setiap baris dianggap unik, kecuali terdapat nama dosen dan alamat yang persis sama.

    Itulah tutorial Penggunaan Query Distinct Pada MySQL

    Recent Articles

    [td_block_21]

    Related Articles

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Dapatkan konten terbaik dari kami!