Ø Pengertian VIEW
Pengertian VIEW
JOIN dan beberapa Jenis fungsionalnya :
View adalah
salah satu object database, yang secara logika merepresentasikan sub himpunan
dari data yang berasal dari satu atau lebih table. Kegunaan dari view adalah :
Membatasi
akses database
Membuat query
kompleks secara mudah
Mengijinkan
independensi data
Untuk
menampilkan view (pandangan) data yang berbeda dari data yang sama.
View dapat
dibuat dengan perintah CREATE VIEW. Subquery dapat dicantumkan dalam CREATE
VIEW, tapi subquery yang digunakan tidak boleh berisi klausa .
Sintak
penulisan VIEW :
CREATE VIEW [OR
REPLACE] nama_view [(kolom1, kolom2, ...)] AS SELECT kolom_yang_dimaksud FROM
nama_tabel WHERE kondisi GROUP BY kolom1,kolom2,… HAVING kondisi_Aggregate
ORDER BY kolom_tertentu
Perintah
pembuatan table view :
SQL> CREATE
VIEW myview
AS SELECT empno
EMPLOYEE_NO, NAMA nama, GAJI sal, pekerjaan JOB
FROM emp
WHERE
deptno=20;
Ø Pengertian
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. JOIN dalam mysql adalah Salah satu fitur SQL yang paling berguna untuk menggabungkan
table dengan query – query yang mendapatkan kembali data.
Macam – macam JOIN :
1. Inner
Join
Inner
join adalah join yang hanya akan menampilkan baris untuk data yang memiliki
nilai yang sama/ yang ada pasangannya pada field kunci dengan tabel yang
berelasi. Inner join merupakan jenis join yang paling umum yang dapat digunakan
pada semua database. Jenis ini dapat digunakan bila ingin merelasikan dua set
data yang ada di tabel, letak relasinya setelah pada perintah ON pada
join.
Bentuk baku
perintah inner join :
SELECT
<field1>,<field2>,<fieldn> FROM <tabel1> INNER JOIN
<tabel2> ON <key.tabel1> = <key.tabel2>
2.
Outer Join
Outer
join akan menghasilkan sebuah data dari sebuah tabel dan membatasi data dari
tabel lainnya. Terdapat 3 tipe Outer join yaitu Left Join, Right Join, dan Full
Join.
§ Left Outer Join
Operasi
Join tipe ini akan menampilkan semua isi tabel sisi kiri, walaupun data di
pasangan joinnya yg disisi kanan nilainya tidak sama ataupun bernilai null.
Bentuk perintah Left Outer Join :
SELECT
<field1>,<field2>,<fieldn> FROM <tabel1> LEFT JOIN
<tabel2> ON<key.tabel1> = <key.tabel2>
§ Right Outer Join
Operasi
Join tipe ini akan menampilkan semua isi tabel sisi Kanan, walaupun data di
pasangan joinnya yg disisi kiri nilainya tidak sama ataupun bernilai null.
Bentuk perintah Right Outer Join :
SELECT
<field1>,<field2>,<fieldn> FROM <tabel1> RIGHT JOIN
<tabel2>ON <key.tabel1> = <key.tabel2>
§ Full Join / Full Outer Join
Penggunaan
FULL JOIN adalah untuk menampilkan kedua table dengan record – record yang
bersesuaian saja. Field yang berelasi ditampilkan sekali di awal table atau
paling kiri. Lihat gambar di bawah. Full Join adalah Gabungan
dari left dan right outer join
Syntak :
select*from
[Tabel_1] full join [Tabel_2] using([field yang berelasi]);
Penggunaan FULL JOIN juga bisa seperti gambar di bawah.
Syntak :
select*from
[Tabel_1] full join [Tabel_2];
3. Cross Join.
Cross join kadang kala disebut juga
sebagai Cartesian Product. Bila menggunakan cross join,
maka hasil dari cross join akan menciptakan hasil yang didasarkan
pada semua kemungkinan kombinasi baris
dalam kedua set data. Dengan demikian, jumlah baris yang dikembalikan adalah N ✕
M ,
dimana N adalah jumlah baris dalam kumpulan data A dan M jumlah baris dalam kumpulan data B. Jelas, jumlah baris
dalam cross join dapat menjadi sampah.
Bentuk
perintah dari Cross Join adalah
SELECT
<field1>,<field2>,<fieldn> FROM <tabel1> CROSS JOIN
<tabel2>
atau
SELECT
<field1>,<field2>,<fieldn> FROM <tabel1>,
<tabel2>
4.
Union Join
Union didukung oleh MySQL mulai dari versi 4.0. Pemakaian union dapat menyederhanakan perintah persyaratan OR yang bertingkat. Bila
dalam sebuah query menghasilkan pemakaian perintah OR yang lebih dari satu sehingga
dapat membuat bingung, sebagai gantinya digunakan perintah UNION.
Agar
lebih jelas, perhatikan contoh berikut ini.
Contoh
:
Tampilkan
nip, nama dan gaji dari pegawai yang bekerja di bagian akuntansi dan SDM.
(anggap saja
perintah sql yang digunakan sudah kompleks) Bila menggunakan
perintah OR, maka perintah sqlnya akan seperti dibawah ini :
select
i.nip,i.nama,p.gaji from infoprib i join pekerjaan p oni.nip=p.nip where
p.kode_bag="3" or p.kode_bag="4";
Tetapi perintah
OR dapat diganti
dengan perintah UNION
dan bila di
jalankan akan menghasilkan hal yang
sama.
(select
i.nip,i.nama,p.gaji from infoprib i join pekerjaan p oni.nip=p.nip where
p.kode_bag="3") UNION
(select
i.nip,i.nama,p.gaji from infoprib i join pekerjaan p oni.nip=p.nip where p.kode_bag="4")