Belajar MySQL Part#4 - Cara Membuat Relasi Table dan Join Table di MySQL
Tutorial Hari Ini
Pengantar Relasi dan Join Tabel
Membangun Relasi Tabel
Menggabungkan (Join) Tabel
Pembahasan Materi Selanjutnya
Penutup
Pembahasan Materi Selanjutnya
Penutup
Pengantar Relasi dan Join Tabel
Hallo sahabat semua apa khabar? berjumpa kembali pada tutorial relasi dan join pada Database MySQL mudah-mudahan masih tetap semangat mengikuti materi ini.
Apa itu relasi pada MySQL? Relasi merupakan hubungan antara satu tabel dengan tabel yang lain, karena didalam suatu database terdapat tabel-tabel yang saling berelasi berdasarkan kunci utama (primary key) dengan kunci tamu atau kunci kandidat (foreign key).
Ada tiga jenis relasi atau hubungan pada suatu tabel, yaitu :
Relasi satu-ke-satu (One-To-One ), relasi satu-ke-banyak (One-To-Many) atau bisa dibalik relasi banyak-ke- satu (Many-To-One) , dan relasi banyak-ke-bayak (Many-To-Many).
Sementara Join merupakan penggabungan beberapa table sekaligus berdasarkan kunci(key) masing-masing tabel. Operasi join (penggabungan) antar tabel merupakan operasi penting yang sangat mendasar pada database relasional.
Baca juga: Penerapan Studi Kasus pada DDL,DML
Membangun Relasi Tabel
Bagaimana membuat relasi dalam database? untuk mempermudah penjelasan pertanyaan tersebut, disini penulis akan menggunakan contoh pada studi kasus sederhana tentang rekam medis, yaitu database puskesmas. Baik buka MySQL Client - Laragon (atau yang lainnya) selanjutnya aktifkan services database MySQL melalui jendela Laragon. Dari dialog layar Laragon, klikØ MenuØ MySQLØ Start MySQL, selanjutnya klik Terminal.
Ketikkan perintah-perintah berikut ini pada terminal, sbb:
mysql -u root -p ⏎
Enter Password: tekan ⏎ saja.
mysql>use puskesmas_db;⏎
mysql>show tables;⏎
(-- ada 7 tabel yang akan ditampilkan --)
Latihan-1: akan ditampilkan nama pegawai dari tabel pegawai, password dari tabel pengguna. Masing-masing tabel pengguna diberikan alias U dan tabel pegawai dengan alias P (menggunakan alias untuk mempersingkat penulisan saja).
mysql>SELECT P.nama,U.pass,U.level_user ⏎
->FROM pengguna U,pegawai P ⏎
->WHERE U.nip=P.nip;
->WHERE U.nip=P.nip;
Hasil di terminal, sbb:
Latihan-2: akan ditampilkan data pemeriksaan Pasien oleh seorang Dokter yang mana melibatkan tabel pasien dengan alias(P), tabel dokter alias(D), tabel obat alias(O), tabel periksa alias(T), dan tabel detail_periksa dengan alias (TD), berikut perintahnya:
SELECT T.nomor_rm,P.nama_pas,T.diagnosa,O.nama_obat,TD.biaya_obat,
SELECT T.nomor_rm,P.nama_pas,T.diagnosa,O.nama_obat,TD.biaya_obat,
TD.biaya_periksa,D.nama_dok
FROM periksa T,pasien P,dokter D,obat O,periksa_detail TD
WHERE T.kode_pas=P.kode_pas AND T.kode_dok=D.kode_dok AND
FROM periksa T,pasien P,dokter D,obat O,periksa_detail TD
WHERE T.kode_pas=P.kode_pas AND T.kode_dok=D.kode_dok AND
TD.kode_obat=O.kode_obat AND T.nomor_rm=TD.nomor_rm;
Hasil di terminal, sbb:
Baca juga: Stored Procedure
Menggabungkan (Join) Tabel
Untuk menggabungkan dua tabel atau beberapa tabel dapat menggunakan perintah Join atau menggunakan relasi berdasarkan kunci utama (primary key) dengan kunci tamu (foreign key) berdasarkan klausa Where - AND (seperti contoh sebelumnya).
Ada 3 model perintah join masing-masing, sbb:
- Inner Join, menggabungkan beberapa tabel terlebih dahulu selanjutnya akan dikondisikan berdasarkan kunci (key) jika sama akan ditampilkan.
Sintaks:
SELECT <field1,fields2field3,...fieldn>
FROM [table1]
INNER JOIN [table2] ON table1.field_key = table2.field_key;
SELECT <field1,fields2field3,...fieldn>
FROM [table1]
INNER JOIN [table2] ON table1.field_key = table2.field_key;
Latihan-3: akan ditampilkan nama pegawai dari tabel pegawai, password dari tabel pengguna dengan penggunakan perintah inner join.
mysql>SELECT pegawai.nama,pengguna.pass,pengguna.level_user ⏎
->FROM pengguna ⏎
->INNER JOIN pegawai ⏎
->ON pengguna.nip = pegawai.nip;⏎
->INNER JOIN pegawai ⏎
->ON pengguna.nip = pegawai.nip;⏎
- Left Join,
menggabungkan lebih dari 1 tabel selanjutnya akan dikondisikan berdasarkan
kunci (key) pada tabel1 (kiri menjadi master) dan nilai yang sama
pada tabel2(kanan), baru nilai akan ditampilkan.
Sumber gambar: https://www.w3schools.com/sql/sql_join.asp
Sintaks:
SELECT <field1,fields2field3,...fieldn>
FROM [table1]
LEFT JOIN [table2]
ON table1.field_key = table2.field_key;
Latihan-4: akan ditampilkan nama pegawai dari tabel pegawai, password dari tabel pengguna dengan penggunakan perintah left join.
mysql>SELECT nama,pass,level_user ⏎
->FROM pengguna ⏎
->LEFT JOIN pegawai ⏎
->ON pengguna.nip = pegawai.nip;⏎
->FROM pengguna ⏎
->LEFT JOIN pegawai ⏎
->ON pengguna.nip = pegawai.nip;⏎
- Right Join, menggabungkan
lebih dari 1 tabel selanjutnya akan dikondisikan berdasarkan kunci (key)
pada tabel1 dan nilai yang sama pada tabel2(kanan menjadi master), baru
nilai akan ditampilkan.
Sintaks:
SELECT <field1,fields2field3,...fieldn>
FROM [table1]
RIGHT JOIN [table2]
ON table1.field_key = table2.field_key;Hasil di terminal:
Catatan: dari ketiga contoh diatas hasilnya sama (silahkan perhatikan perbedaannya).
Materi Selanjutnya
SELECT <field1,fields2field3,...fieldn>
FROM [table1]
RIGHT JOIN [table2]
ON table1.field_key = table2.field_key;
Latihan-5: akan ditampilkan nama pegawai dari tabel pegawai, password dari tabel pengguna dengan penggunakan perintah right join.
mysql>SELECT nama,pass,level_user ⏎
->FROM pegawai ⏎
->RIGHT JOIN pengguna ⏎
->ON pegawai.nip = pengguna.nip;⏎
->FROM pegawai ⏎
->RIGHT JOIN pengguna ⏎
->ON pegawai.nip = pengguna.nip;⏎
Catatan: dari ketiga contoh diatas hasilnya sama (silahkan perhatikan perbedaannya).
Materi Selanjutnya
Penutup
Sekian pembahasan tutorial hari ini, tentang membangun relasi tabel serta menggabungkan beberapa tabel dengan Inner join, Left Join, dan Right Join. Selanjutnya akan dibahas stored procedure. Sekian dan terima kasih sudah mengikuti terus tutorial pada blog ini, semoga bermanfaat, syalam penulis.
Posting Komentar untuk "Belajar MySQL Part#4 - Cara Membuat Relasi Table dan Join Table di MySQL"
Silahkan berikan masukan / komentar yang sopan untuk penyempurnaan
Posting Komentar