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