Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Menampilkan Data dari Beberapa Table

Presentasi serupa


Presentasi berjudul: "Menampilkan Data dari Beberapa Table"— Transcript presentasi:

1 Menampilkan Data dari Beberapa Table
“JOIN”

2 Objektif Menggunakan SELECT statement utk meng-akses data dari
bbrp tabel menggunakan equijoins dan nonequijoins Pemakaian self-join untuk tabel itu sendiri Penggunaan outer joins untuk view data Menghasilkan “Cartesian product” dari seluruh “row” dari 2 tabel atau lebih

3 Mengambil data dari beberapa tabel

4 Beberapa jenis “JOINS”
“JOINS” yang mengikuti standard “SQL:1999” : NATURAL JOIN JOIN table-name USING column-name JOIN table-name ON column-name1 = column-name2 OUTER JOIN (“LEFT”, “RIGHT”, “FULL”) CROSS JOIN

5 Syntax men-Join tabel dengan
standard “SQL:1999 Penggunaan “JOIN” utk query data dari lebih dari 1 tabel

6 Membentuk “Natural Join”
“NATURAL JOIN” merujuk pada Kolom-kolom pada 2 tabel yang memiliki “nama sama” Mengambil semua Row dari 2 tabel dari kolom yang berisi sama dan yang ber-nama sama Jika Kolom yang memiliki nama sama tetapi berbeda type data, akan menghasilkan “error”

7 Mengambil record dengan “NATURAL JOIN”
SELECT table1.column, table2.column FROM table1 [NATURAL JOIN table2] | [JOIN table2 USING (column_name)] | [JOIN table2 ON (table1.column_name = table2.column_name)]| [LEFT|RIGHT|FULL OUTER JOIN table2 [CROSS JOIN table2]; SELECT department_id, department_name, location_id, city FROM departments NATURAL JOIN locations ;

8 Membentuk “JOIN” dengan perintah “USING”
Jika beberapa Kolom yg memiliki “nama sama” tetapi berbeda “type data”, perintah “NATURAL JOIN” dapat dimodifikasi dgn perintah “USING” utk men-spesifikasi Kolom yg akan digunakan dalam sebuah “equijoin” Gunakan “USING” utk mencocokan hanya 1 kolom ketika ada beberapa kolom yang cocok Nama Tabel atau nama Alias tidak perlu dipergunakan utk Kolom yg di-pakai dalam “men-join” dengan “USING” “NATURAL JOIN” dan “USING” dipergunakan secara sendiri2

9

10 Mengambil record dgn perintah “USING”
SELECT table1.column, table2.column FROM table1 [NATURAL JOIN table2] | [JOIN table2 USING (column_name)] | [JOIN table2 ON (table1.column_name = table2.column_name)]| [LEFT|RIGHT|FULL OUTER JOIN table2 [CROSS JOIN table2]; SELECT employees.employee_id, employees.last_name, departments.location_id, department_id FROM employees JOIN departments USING (department_id) ;

11 Mempertegas “Nama Kolom” yang sama
Gunakan “prefix tabel” untuk memperjelas “Nama Kolom” yang ada dibeberapa tabel “prefix Tabel” juga dapat memperbaiki performansi Gunakan “nama alias Kolom” untuk membedakan “Kolom” yang bernama sama tetapi berada di tabel yang berbeda Tidak diperbolehkan pengunaan “nama alias Kolom” yang dirujuk dalam perintah “USING” dan dipakai dalam perintah SQL

12 Penggunaan “Tabel Alias”
Untuk memudahkan query Untuk meningkatkan performansi SELECT e.employee_id, e.last_name, d.location_id, department_id FROM employees e JOIN departments d USING (department_id) ;

13 Membentuk “JOIN” dgn perintah “ON”
“JOIN condition” untuk sebuah “natural join” pada dasarnya adalah equijoin dari seluruh Kolom yg memiliki nama sama. Perintah “ON” dimaksudkan untuk menentukan “sebuah kondisi” atau menentukan kolom yang dipakai untuk men-“join” “Join condition” dipisahkan dari “search condition” lainnya Perintah “ON” mempermudah pemahaman

14 Mengambil record dengan perintah “ON”
SELECT table1.column, table2.column FROM table1 [NATURAL JOIN table2] | [JOIN table2 USING (column_name)] | [JOIN table2 ON (table1.column_name = table2.column_name)]| [LEFT|RIGHT|FULL OUTER JOIN table2 [CROSS JOIN table2]; SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e JOIN departments d ON (e.department_id = d.department_id) ;

15

16 Self-Joins menggunakan perintah “ON”
SELECT e.last_name emp, m.last_name mgr FROM employees e JOIN employees m ON (e.manager_id = m.employee_id);

17 Penerapan tambahan kondisi pada sebuah Join
SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id FROM employees e JOIN departments d ON (e.department_id = d.department_id) AND e.manager_id = 149 ;

18 Membuat 3 Join dengan perintah “ON”
SELECT employee_id, city, department_name FROM employees e JOIN departments d ON d.department_id = e.department_id JOIN locations l ON d.location_id = l.location_id ;

19

20 Mengambil record dengan Nonequijoin
SELECT e.last_name, e.salary, j.grade_level FROM employees e JOIN job_grades j ON e.salary BETWEEN j.lowest_sal AND j.highest_sal;

21 Mengambil record dengan Nonequijoin …lanjutan
JOBS tabel SELECT e.last_name, e.salary, j.job_id FROM employees e JOIN jobs j ON e.salary BETWEEN j.min_salary AND j.max_salary;

22

23 Inner Joins VS Outer Joins
Join 2 tabel yang menghasilkan hanya row yang cocok (match) disebut sebagai “inner join” (in SQL:1999) Join 2 tabel yang menghasilkan “inner join” dan juga menghasilkan row yg tidak cocok (unmatch) dari tabel kiri (tabel kanan) disebut outer join kiri atau (outer join kanan) Join dari 2 tabel yang menghasilkan “inner join” dan juga menghasilkan outer join kiri dan outer join kanan disebut “Full outer join”

24 Outer Join kiri SELECT e.last_name, e.department_id, d.department_name
FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id) ;

25 Outer Join Kanan SELECT e.last_name, e.department_id, d.department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id) ;

26 Cara lain menuliskan perintah LEFT, RIGHT Outer Join
LEFT OUTER JOIN : SELECT e.last_name, e.department_id, d.department_name FROM employees e departments d WHERE e.department_id = d.department_id (+) ; RIGHT OUTER JOIN : SELECT e.last_name, e.department_id, d.department_name FROM employees e departments d WHERE e.department_id (+) = d.department_id ;

27 Full Outer Join SELECT e.last_name, d.department_id, d.department_name
FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id) ;

28 Cartesian Product Sebuah “Cartesian Product” akan terbentuk jika :
“join condition” dihilangkan “join condition” salah Semua row dr 2 buah tabel di “join” semua Gunakan “join condition” yang “valid” untuk menghindari “Cartesian Product”

29

30 CROSS JOIN Perintah CROSS JOIN menghasilkan cross-product dari 2 tabel
Hasil ini disebut juga “Cartesian Product” antara 2 tabel SELECT last_name, department_name FROM employees CROSS JOIN departments ;

31


Download ppt "Menampilkan Data dari Beberapa Table"

Presentasi serupa


Iklan oleh Google