Sunday, April 28, 2019

SQL - DML - Query Multi Table

Assalamu'alaikum

Selamat siang, salam bucin!! Melanjutkan kembali pemmbahasan sebelumnya terkait DML di single table, kali ini saya ingin membahas bagaimana melakukan query data DML pada multi tabel. Langsung saja berikut pembahasannya.

Query Multi Table (DML)

SQL menyediakan 2 teknik yang berbeda untuk melakukann query data dari banyak tabel. yaitu subquery dann join. Meskipun keduanya digunakan untuk melakukann query dengan banyak tabel tetapi perintah ini digunakan untuk tujuan yang berbeda. Untuk melakukan testing query, kita akan menggunakan tabel pegawai contoh berikut ini.

Query Multi Tabel dengan Subquery
Semisal disini kita ingin mengetahui total gaji pokok dari pegawai bagian penjualan saja. Artinya kita harus menggunakan tabel Gaji (yang berisi informasi gaji) dan tabel Pegawai (yang berisi informasi KodeDepartement yang ingin dicari).  


Untuk menggunakan subquery, kita bisa menggunakan IN dan memberikan kondisi dalam tanda kurung setelah IN di deklarasi. Berikut contohnya 

SELECT SUM (GajiPokok) AS TotalGapok
FROM GAJI
WHERE NIP IN
      (SELECT NIP
       FROM PEGAWAI
       WHERE KodeDepartement = '21'); 

Subquery ini juga bisa di lakukan dengan memproses 3 tabel atau lebih. Semisal disini kita ingin mengetahui pegawai dari departemen mana yang memiliki gaji pokok lebih besar dari Rp 20.000.000. Perintah querynya adalah 

SELECT Dep
FROM DEPARTEMEN
WHERE KodeDepartement IN
      (SELECT KodeDepartement
       FROM PEGAWAI
       WHERE NIP IN
            (SELECT NIP
             FROM GAJI
             WHERE GajiPokok > 2000000);

Query Multi Tabel Dengan Join
Query dengan  teknik Subquery sudah sangat bagus untuk mencari data berdasarkan kondisi yang kita inginkan. Namun subquery hanya dapat memunculkan data pada top tabel yang di tampilkan saja. Sehingga subquery tidak dapat memunculkan data dari 2 tabel yang berbeda. 

Untuk itu, kita bisa menggunakan query dengan teknik join. Teknik join ini sendiripun memiliki 2 cara yang berbeda. Kita akan bahas masing-masing cara teknik join yang bisa kita gunakan untuk mencari data dari 2 tabel yang berbeda. 


Contoh 1 : Semisal kita ingin memunculkan semua data di tabel pegawai dan tabel departement. Maka kita bisa menggunakan perintah query sebagai berikut. 

SELECT NIP, NamaPegawai, KodeDepartemen, Dept
FROM PEGAWAI 
JOIN DEPARTEMENT 
ON PEGAWAI.KodeDepartement=DEPARTEMENT.KodeDepartement;
Di beberapa platform tentu kita bisa menggunakan query join lain yang fungsinya sama seperti di atas. Berikut contoh querynya. 

SELECT NIP, NamaPegawai, KodeDepartemen, Dept
FROM PEGAWAI 
JOIN DEPARTEMENT using (KodeDepartement);
Namun, secara umum. Perintah query join yang lebih umum digunakan termasuk saya sendiri lebih nyaman dengan menggunakan query sebagai berikut.

SELECT NIP, NamaPegawai, KodeDepartemen, Dept
FROM PEGAWAI, DEPARTEMENT
WHERE PEGAWAI.KodeDepartement=DEPARTEMENT.KodeDepartement;

Contoh 2 : Kita juga bisa melakukan query terhadap 3 tabel atau lebih dengan menggunakan teknik join. Semisal kita ingin memunculkan data nip, NamaPegawai, Dept dan GajiPokok. Perintah query yang bisa kita gunakan sebagai berikut.

SELECT NIP, KodePegawai, Dept, GajiPokok
FROM PEGAWAI, DEPARTEMENT, GAJI
WHERE PEGAWAI.KodeDepartement=DEPARTEMENT.KodeDepartement 
AND PEGAWAI.NIP=GAJI.NIP; 



Sebagai catatan, untuk melakukan query 2 tabel atau lebih (Multi tabel) pada kondisi query harus di hubungkan primary key yang berketerkaitan. Artinya harus di berikan kondisi hubungan antara primary key dan foreignn key. 

Contoh 3 : Tampikan data NIP, NamaPegawai, Dept, GajiPokok dengan kondisi gaji dibawah 10jt dan hanya departemen penjualan dan marketing. Querynya sebagai berikut.

SELECT NIP, KodePegawai, Dept, GajiPokok
FROM PEGAWAI, DEPARTEMENT, GAJI
WHERE PEGAWAI.KodeDepartement=DEPARTEMENT.KodeDepartement 
AND PEGAWAI.NIP=GAJI.NIP
AND GajiPokok < 10000000 
AND Dept = 'Penjualan' OR Dept = 'Marketing';

Demikian penjelasan di pembahasan kali ini mengenai SQL Query Multi Tabel. Semoga bermanfaat untuk kalian. Sekian dari saya, jika ada yang ingin di tanyakan bisa langsung di kolom komentar. Terima kasih sudah berkunjung, sampai berjumpa di pembahasan berikutnya. 

0 komentar:

Post a Comment

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment