Tutorial Hari Ini
Pengantar Relasi dan Join Tabel
Membangun Relasi Tabel
Menggabungkan (Join) Tabel
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.
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;
Hasil di terminal, sbb:
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
TD.kode_obat=O.kode_obat AND T.nomor_rm=TD.nomor_rm;
Hasil di terminal, sbb:
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;
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;⏎
- 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: //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;⏎
- 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;
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;⏎
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.