Anda di halaman 1dari 31

JOINS

• Contoh yang lalu cukup untuk


mengembalikan informasi dari
satu tabel database dalam sekali
waktu
• Hal ini bukanlah masalah jika
semua data di database
disimpan hanya pada satu tabel
• Jika banyak tabel ?

PRAKTIKUM BASIS DATA II 2


• Mengaitkan tabel satu sama lain
adalah inti dari desain database
relasional
• SQL memberikan ketentuan join
yang memungkinkan informasi
agar dibuat kueri dari tabel
terpisah dan dikombinasikan
dalam satu laporan

PRAKTIKUM BASIS DATA II 3


JOIN
• Klausa join SQL menggabungkan field dari 2 tabel (atau lebih) dalam
database relasional
• JOIN didasarkan pada semua kolom dalam dua tabel yang memiliki
nama yang sama dan memilih baris dari dua tabel yang memiliki nilai
yang sama di semua kolom yang berelasi dan cocok
• Tujuan join : untuk mengikat data bersama, di seluruh tabel, tanpa
mengulangi semua data di setiap tabel
• Meminta data yang benar-benar dibutuhkan

PRAKTIKUM BASIS DATA II 4


JOIN
• Tabel kayawan memiliki kolom job_id
• Ini merupakan referensi untuk kolom dengan nama yang sama pada
tabel pekerjaan

PRAKTIKUM BASIS DATA II 5


JOIN (INNER JOIN)
• Akan mengembalikan semua baris data yang memiliki nilai yang cocok
di kedua tabel atau lebih
• Syntax INNER JOIN
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

PRAKTIKUM BASIS DATA II 6


INNER JOIN
• Contoh:
SELECT first_name, last_name, job_id, job_title
FROM employees
INNER JOIN jobs ON employees.job_id = jobs.job_id
• Join ini akan mengembalikan kolom dari tabel karyawan dan job terkait dari tabel pekerjaan
berdasarkan pada kolom umum job_id
• Klausa WHERE bisa ditambahkan untuk menerapkan pembatasan tambahan ke salah satu tabel,
untuk membatasi baris output

PRAKTIKUM BASIS DATA II 7


INNER JOIN
• Tabel departemen dan lokasi
keduanya memiliki kolom yang
sama, location_id, yang
digunakan untuk
menggabungkan dua tabel
• Contoh:
SELECT department_name, city
FROM departments
INNER JOIN locations ON
departments.location_id =
locations.location_id

PRAKTIKUM BASIS DATA II 8


INNER JOIN
• Contoh:
Tuliskan query SQL untuk menggabungkan data pada tabel employees dan
departments berdasarkan kesamaan nilai pada kolom department_id!
Tampilkan data first name, last name, department id, dan department name-
nya.

PRAKTIKUM BASIS DATA II 9


• Contoh:
Tuliskan query SQL untuk menampilkan first name, last name, department id,
dan department name terbatas hanya untuk data yang last name-nya adalah
Higgins.

PRAKTIKUM BASIS DATA II 10


• Contoh:
Tuliskan query SQL untuk menampilkan last name, salary, grade level, lowest
salary, dan highest salary.

PRAKTIKUM BASIS DATA II 11


Alias
• Bekerja dengan nama kolom & tabel yang panjang bisa merepotkan
• Cara untuk mempersingkat sintaks menggunakan alias
• Untuk membedakan kolom yang memiliki nama identik tetapi berada
di tabel yang berbeda, gunakan alias tabel
• Alias tabel mirip dengan alias kolom
• Alias tabel dibuat dengan memasukkan nama baru untuk tabel tepat
setelah nama tabel di klausa FROM

PRAKTIKUM BASIS DATA II 12


Alias Tabel

• Ketika nama kolom tidak digandakan antara dua tabel, Anda tidak
perlu menambahkan nama tabel atau alias ke nama kolom

PRAKTIKUM BASIS DATA II 13


Alias Tabel
• Jika alias tabel digunakan dalam klausa FROM, maka alias tabel
tersebut harus diganti dengan nama tabel di seluruh pernyataan
SELECT
• Menggunakan nama tabel dalam klausa SELECT yang telah diberi alias
dalam klausa FROM akan mengakibatkan kesalahan/kegagalan

PRAKTIKUM BASIS DATA II 14


Klausa ON dengan operator non kesetaraan
• Terkadang perlu mengambil data dari tabel yang tidak memiliki kolom yang sesuai
di tabel lain
• Misalkan, ingin mengetahui grade_level untuk setiap gaji karyawan
• Tabel job_grades tidak memiliki kolom yang sama dengan tabel karyawan
• Menggunakan klausa ON memungkinkan kita untuk menggabungkan dua tabel

PRAKTIKUM BASIS DATA II 15


Menggabungkan Tiga Tabel
• Contoh:
Tuliskan query SQL untuk menampilkan last name, department name, dan kota
berdasarkan data dari tabel employees, departments, dan locations.

PRAKTIKUM BASIS DATA II 16


INNER JOIN VS OUTER JOIN
• Semua join mengembalikan data yang cocok dengan ketentuan join
• Terkadang, kita ingin mengambil data yang memenuhi ketentuan join
dan data yang tidak memenuhi ketentuan join
• Outer join memungkinkan hal ini

PRAKTIKUM BASIS DATA II 17


INNER JOIN VS OUTER JOIN
• Join dari dua tabel atau lebih yang hanya mengembalikan baris yang
cocok disebut inner join
• Ketika join mengembalikan baris yang tidak cocok serta baris yang
cocok, disebut outer join
• Outer join memiliki istilah left, full (SQL) /cross (MySQL), dan right
• Istilah-istilah ini dikaitkan dengan urutan nama tabel dalam klausa
FROM dari pernyataan SELECT

PRAKTIKUM BASIS DATA II 18


LEFT dan RIGHT (OUTER) Join
• Pada contoh, ditunjukkan left (outer) join
• Perhatikan bahwa nama tabel yang tercantum di sebelah kiri kata
“left outer join” disebut sebagai “left table”

* Kueri ini akan mengembalikan semua nama belakang karyawan, baik yang ditetapkan ke departemen
maupun yang tidak

PRAKTIKUM BASIS DATA II 19


LEFT dan RIGHT (OUTER) Join
• Right (outer) join akan mengembalikan semua ID departemen dan
nama departemen, baik yang memiliki karyawan yang ditugaskan ke
departemen tersebut dan yang tidak

PRAKTIKUM BASIS DATA II 20


CROSS JOIN
• CROSS JOIN menggabungkan setiap baris dalam satu tabel untuk
setiap baris pada tabel lain
• Kumpulan hasil mewakili semua kombinasi memungkinkan dari dua
tabel
• Ini dapat menghasilkan jumlah baris yang banyak
• Jika menggunakan CROSS JOIN pada tabel dengan 20 baris dengan
tabel berisi 100 baris, kueri akan menghasilkan 2.000 baris

PRAKTIKUM BASIS DATA II 21


Contoh CROSS JOIN
• Tabel karyawan berisi 20 baris dan tabel departemen memiliki 8 baris
• Menjalankan CROSS JOIN akan menghasilkan 160 baris
• Kumpulan hasil dari CROSS JOIN menyatukan data dari dua tabel yang tidak terkait secara logika
satu sama lain
• CROSS JOIN bermanfaat selama pengujian untuk membuat dataset besar guna mengukur kinerja
database

PRAKTIKUM BASIS DATA II 22


FULL OUTER Join
• Berlaku di DBMS SQL Server.
• Untuk membuat ketentuan join mengambil semua baris yang cocok
dan semua baris yang tidak cocok dari kedua tabel
• Kumpulan hasil full outer join mencakup semua baris dari left outer
join dan semua baris dari right outer join digabungkan menjadi satu
tanpa duplikasi

PRAKTIKUM BASIS DATA II 23


FULL OUTER Join

PRAKTIKUM BASIS DATA II 24


Skenario Join
• Buat join untuk menampilkan daftar karyawan, job_id mereka saat ini
dan pekerjaan yang pernah mereka lakukan sebelumnya
• Tabel job_history berisi detail pekerjaan sebelumnya dari karyawan

PRAKTIKUM BASIS DATA II 25


SELF JOIN DAN KUERI HIERARKIS

PRAKTIKUM BASIS DATA II 26


• Dalam pemodelan data, sering kali diperlukan untuk menampilkan
entitas dengan hubungan/relasi itu sendiri
• Misalnya, karyawan juga dapat merangkap manajer
• Kita menampilkan ini menggunakan hubungan rekursif atau pig’s ear

PRAKTIKUM BASIS DATA II 27


• Setelah kita memiliki tabel employees asli, jenis join khusus yang
disebut self join diperlukan untuk mengakses data ini
• Self join digunakan untuk menggabungkan tabel itu sendiri seolah-
olah terrdapat dua tabel

PRAKTIKUM BASIS DATA II 28


SELF JOIN
• Untuk menggabungkan tabel itu sendiri, tabel tersebut diberikan dua nama atau
alias
• Ini akan membuat database “berpikir” bahwa terdapat dua tabel
• Pilih nama alias yang berkaitan dengan asosiasi data dengan tabel tersebut

* manager_id dalam tabel pekerja sama dengan employee_id di tabel manajer

PRAKTIKUM BASIS DATA II 29


SELF JOIN

PRAKTIKUM BASIS DATA II 30


REFERENSI
• Oracle Academy, 2020.
• Hak cipta 2020, Oracle dan/atau afiliasinya.
• https://www.w3schools.com/.

PRAKTIKUM BASIS DATA II 31

Anda mungkin juga menyukai