View & Join
VIEW adalah query yang disimpan, bentuknya menyerupai table. View bersifat logic, artinya tidak memiliki data fisik karena data fisiknya ada di table. View adalah cara menampilkan/menyajikan data yang ada di table.
Ada beberapa bentuk view :
1. Diambil dari 1 tabel (seluruh kolom, sebagian kolom, calculated colomn, seluruh record, sebagian record)
2. Diambil dari beberapa table (syaratnya harus ada relasi antar table)
a. INNER JOIN
b. LEFT OUTER JOIN
c. RIGHT OUTER JOIN
d. FULL OUTER JOIN
e. UNION (syaratnya field yang di-UNION harus sejenis)
3. Hasil dari Pengelompokkan Data (Group By)
4. Hasil dari Pivot Table (Cross Table)
-------------------------------------------------------------------------------------
Definisi Join
Join adalah operasi untuk mengambil informasi dari 2 tabel atau lebih dalam 1 waktu. Dengan join baris data dari satu tabel dihubungkan dengan baris data pada tabel lain berdasarkan kolom tertentu.
Klasifikasi Join
• inner join
• outer join
• cross join
• equi join
• natural join
• self join
Dari beberapa macam join tersebut yang banyak digunakan adalah inner join dan outer join
Inner Join
Inner join adalah default dari join, digunakan mendapatkan data dari tabel lain berdasarkan kolom yang dihubungkan. Bila tidak ditemukan maka baris data tersebut dibatalkan.
Syntax :
Select … from tabelA [inner] join tabelB
on tabelA.namakolom operator tabelB.namakolom
Keterangan :
• Kata inner adalah opsional (boleh ditulis ataupun tidak)
• Klausa where, order by dll dapat disertakan
Contoh :
Menampilkan ID buku, Judul buku dan nama penerbitnya dari tabel Title & Publishers
Pada tabel Title tidak ada nama penerbit, tetapi ada kode penerbit/Pub_Id yang namanya dapat diperoleh dari tabel Publishers berdasarkan Pub_Id
Select t.Title_Id, t.Title, p.Pub_name from Titles t join Publishers p
on t.Pub_Id = p.Pub_Id
Outer Join
Outer join adalah join yang digunakan memasangkan data dari satu tabel dengan tabel lain berdasarkan kolom yang dihubungkan walaupun salah satu kolom penghubungnya tidak berpasangan.
Syntax :
Select … from tabelA [left|right] outer join tabelB
on tabelA.namakolom operator tabelB.namakolom
Keterangan :
• Kata outer harus ditulis dan didahului kata left atau right
• Kata left dipilih bila nama tabel disebelah kiri kata join yang menjadi acuan
• Kata right dipilih bila nama tabel disebelah kanan kata join yang menjadi acuan
• Klausa where, order by dll dapat disertakan
Contoh :
Menampilkan daftar penerbit & nama-nama pengarang yang berada di kota yang sama (semua penerbit ditampilkan walaupun tidak ada nama pengarang yang satu kota)
Select p.Pub_name, a.Au_Lname, a.Au_Fname from Publishers p
left outer join Authors a on p.City = a.City
dalam syntax lain :
Select p.Pub_name, a.Au_Lname, a.Au_Fname from Publishers p, Authors a
where p.City *= a.City