Tampilkan postingan dengan label Database. Tampilkan semua postingan
Tampilkan postingan dengan label Database. Tampilkan semua postingan

Jumat, 03 Agustus 2018

Minggu, 11 September 2016

[MySQL] Cara menggunakan GROUP_CONCAT


Disaat kita ingin melihat kumpulan data dalam suatu grup data dengan lebih informatif, kita bisa menggunakan fungsi yang disediakan oleh MySQL yaitu Group_Concat.

Apa itu Group_Concat?
Group_Concat adalah sebuah function atau fungsi yang mengembalikan nilai berupa string yang sudah digabungkan dari suatu grup data.Untuk melakukan group_concat, query yang kita buat harus di grouping atau dikelompokkan terlebih dahulu

Pada contoh ini saya menggunakan 2 tabel yaitu tabel pegawai (t_employee) dan tabel skill atau keahlian (t_skill). Kita akan menampilkan data semua pegawai dengan keahlian nya masing-masing. Kita akan belajar bagaimana cara menggunakan fungsi group_concat di MySQL.




Terlihat bahwa setiap pegawai mempunyai keahlian lebih dari 1 (perhatikan id_employee nya).

Syntax Group_Concat

GROUP_CONCAT(DISTINCT expression

ORDER BY expression
SEPARATOR symbol);

Query yang kita gunakan adalah :

SELECT A.NAMA_EMPLOYEE,

GROUP_CONCAT(DISTINCT B.NAMA_SKILL
ORDER BY B.NAMA_SKILL
SEPARATOR ',')
FROM T_EMPLOYEE A
JOIN T_SKILL B
ON A.ID_EMPLOYEE = B.ID_EMPLOYEE
GROUP BY (A.ID_EMPLOYEE)

Hasilnya sebagai berikut :


Data yang ditampilkan adalah semua keahlian masing-masing pegawai dalam satu kolom atau field memanjang dengan diurutkan berdasarkan nama skillnya dan dikelompokkan berdasarkan id pegawainya (lihat query group_by(a.id_employee) dibawah) sehingga lebih informatif. 

Separator atau pemisah setiap data adalah "koma" dan dilakukan distinct untuk menghindari adanya duplikasi data. Sedangkan untuk mengubah nama kolom disebelah kanan (yang masih berupa query), bisa digunakan alias seperti berikut :

GROUP_CONCAT(DISTINCT B.NAMA_SKILL

ORDER BY B.NAMA_SKILL
SEPARATOR ',') AS KEAHLIAN

Hasilnya seperti berikut (terlihat lebih rapih):


Jika kita tidak menggunakan fungsi group_concat dan hanya melakukan grouping biasa dengan fungsi group_by, maka hasil yang didapatkan seperti berikut :


data keahlian atau skill yang muncul hanyalah satu baris, mengapa bisa begitu? karena jika hanya dilakukan grouping atau pengelompokkan biasa, data skill yang tampil hanya data atau row pertama. Bisa dilihat bahwa Pegawai 1 hanya mempunyai data skill berupa MySQL (di tabel t_skill berada pada id_skill 1 atau yang paling awal), begitu juga Pegawai 2 dan seterusnya.

Dan jika kita tidak melakukan grouping dan memakai group_concat, maka hasil yang didapat sebagai berikut :



Semoga Bermanfaat


Artikel ini dibuat oleh Yudha Tri Putra sebagai penulis artikel, diperbolehkan menyalin artikel ini secara utuh tanpa mengubah atau menambah isi artikel.

Kamis, 27 November 2014

[SQL] Contoh membuat Trigger




Pada artikel ini saya akan memberi contoh sederhana membuat Trigger, sebelumnya untuk anda yang belum mengerti apa itu Trigger (bukan trigger sahabat winnie the pooh ya, itu tiger :p ) ,Trigger adalah suatu prosedur yang otomatis terjalankan ketika perintah atau event INSERT,UPDATE atau DELETE (DML statement) dijalankan.

Jika Trigger dibuat pada perintah Insert maka Trigger akan dijalankan ketika ada data baru yang di-input. Sedangkan pada perintah Update, maka Trigger akan dijalankan ketika ada perubahan data dan pada perintah Delete, maka Trigger akan dijalankan ketika ada data/record yang dihapus.

Tujuan pembuatan Trigger
Biasanya Trigger digunakan untuk :
  • Menjaga Integritas data
  • Backup,replikasi atau duplikasi data atau record
  • Logging.

Rabu, 26 November 2014

[ORACLE] ORA-00001: unique constraint



Pada artikel ini saya mencoba membahas dan memberi solusi untuk error pada Oracle yang sering terjadi yaitu ORA-00001: unique constraint (constraint_name) violated.

Mengapa terjadi error ORA-00001 ?
Disebabkan saat proses Insert atau Update data, data yang di-input sudah ada (double) pada kolom yang memiliki indeks yang unik.

Contoh :
Anda memiliki tabel guru dengan data sebagai berikut dengan kolom GURU_ID sebagai primary key:


Lalu anda mencoba melakukan Insert data dengan value GURU_ID = 2, maka akan muncul error ORA-00001:

(C) 2018. Diberdayakan oleh Blogger.

Categories

Followers