Rabu, 13 Juni 2012

Tulisan KE 9 JOIN TABLE


1. Pengertian Join
Untuk mendapatkan data dari dua atau lebih tabel, maka table-tabel tersebut harus dihubungkan terlebih dahulu, atau yang biasa disebut dengan JOIN.
Bentuk umum JOIN :
SELECT table1.column, table2.column FROM tabel1, tabel2
WHERE tabel1.column=table2.column;
2. Cartesian Product
Cartesian product dibentuk pada saat :
1. Kondisi join diabaikan
2. Kondisi join tidak valid
3. Semua baris dalam table pertama dijoinkan ke semua baris dalam table kedua.
3. Beberapa tipe utama join, yaitu :
a). Equijoin
Misalnya table EMP memiliki primary key empno, dan memiliki foreign key deptno
dimana deptno ini merupakan primary key dari table yang lain yaitu table DEPT.
Relasi antara EMP dengan DEPT disebut equi-join.
Menambahkan Kondisi Pencarian dengan Operator AND
Operator logika (AND, OR, NOT) bisa digunakan pada kondisi pencarian yang ada pada klausa WHERE. Penggunaan Tabel Alias
Query dapat disederhanakan dengan penggunaan table alias.
Contoh query berikut:                                                                                   
            SELECT emp.empno, emp.ename, emp.deptno, dept.loc
           FROM emp, dept
           WHERE emp.deptno=dept.deptno;
 Dengan menggunakan table alias akan diubah seperti berikut :
             SELECT e.empno, e.ename, e.deptno, d.loc
             FROM emp e, dept d
             WHERE e.deptno=d.deptno;
b) Non-equijoin
Relasi antara dua table disebut non-equijoin jika kolom pada table pertama berkorespondensi langsung dengan kolom pada table kedua. Misalnya table EMP terdiri dari kolom empno, ename, sal. Dan table SALGRADE terdiri dari kolom grade, losal, hisal. Maka kolom sal pada table EMP berkorespondensi langsung dengan losal dan hisal pada table SALGRADE yang nantinya akan memberikan suatu nilai grade yang bersesuaian.
c) Outer Join
Jika terdapat baris yang tidak memenuhi kondisi join, dan akan ditampilkan pada hasil query, maka digunakan outer join. Misalnya pada hasil query berikut, department ‘OPERATIONS’ tidak ditampilkan karena tidak memenuhi kondisi join yang disebutkan. Outer join dapat digunakan dengan menggunakan tanda plus (+). Jika akan ditampilkan kolom pada table department (DEPT) yang tidak bersesuaian dengan semua kolom yang ada pada table pegawai (EMP), digunakan query dengan outer join.
d) Self Join
Seringkali sebuah table perlu dijoin-kan dengan table itu sendiri. Misal pada saat mencari manager dari seorang pegawai maka table pegawai di-joinkan dengan table pegawai untuk mendapatkan nomer pegawai manager dan namanya.
4. Dalam penggabungan dari beberapa tabel join ada beberapa hal yang perlu diperhatikan, antara lain :
a) Setiap kolom disebutkan dengan bentuk.
b) Tabel-tabel yang dilibatkan dalam queri perlu disebutkan dalam Klausa FORM dengan antar tabel dipisah oleh koma.
c) Kondisi dalam WHERE menetukan macam join yang terbentuk.
5. Macam-macam bentuk Penggabungan (Join)
a. CROSS JOIN
Cross Join merupakan bentuk penggabungan yang paling sederhana, tanpa ada kondisi.
Bentuk Umum : SELECT field1,field2 FROM Tabel1 CROSS JOIN tabel2;
b. INNER JOIN
Hampir sama dengan cross join tetapi diikuti dengan kondisi.
Inner join berfungsi sebagai pemetaan relasi one-to-one (satu ke satu), yaitu dimana hanya satu record tabel A yang sama dengan satu record tabel B, dan hanya satu record tabel B yang sama dengan satu record tabel A.
Bentuk Umum : SELECT Field FROM tabel1 INNER JOIN tabel 2 ON kondisi;
c. STRAIGHT JOIN
Straight Join identik dengan inner join tetapi tidak mengenal klausa where.
Bentuk Umum : SELECT field FROM Tabel1 SATRIGHT JOIN tabel2;
d. LEFT (OUTER) JOIN
Left (outer) join berfungsi sebagai pemetaan relasi many-to-one (banyak ke satu), yaitu dimana beberapa record tabel A yang sama dengan satu record tabel B. Di sini kita akan menampilkan tabel disebelah kanannya (dalam hal ini tabel nilai) dengan NULL jika tidak terdapat hubungan antara tabel disebelah kiri (dalam hal ini tabel siswa).
Bentuk Umum : SELECT field FROM tabel1 LEFT JOIN tabel2 ON kondisi;
e. RIGHT/OUTER JOIN
Kebalikan dari LEFT JOIN, jika idak menemukan hubungan dengan tabel disebelah kiri maka akan ditampilkan NULL.
Right outer join berfungsi sebagai pemetaan relasi one-to-many (satu ke banyak), yaitu dimana hanya satu record tabel A yang sama dengan beberapa record tabel B.
Bentuk Umum : SELECT field FROM tabel1 RIGHT JOIN tabel2 ON kondisi;
e. FULL OOUTER JOIN
Full Outer join berfungsi sebagai pemetaan relasi many-to-many (banyak ke banyak), yaitu dimana beberapa record tabel A yang sama dengan satu record tabel B, dan beberapa record tabel B yang sama dengan satu record tabel A.

Tidak ada komentar:

Posting Komentar