Sistem basis data_Equijoin dan self join
Equijoin dan self join
Equi Join didasarkan pada kondisi untuk perbandingan, dapat terjadi pada setiap INNER, OUTER atau SELF bergabung dalam SQL.
Equi Join merupakan Join yang menggunakan tanda equal (=) untuk membandingkan Operatornya. Secara garis besar Equi Joins terbagi menjadi
Natural JOIN : bisa digunakan jika pada tabel yang di join terdapat kolom(atribut) yang memiliki nama yang sama dan type data yang sama. Pada waktu JOIN kolom tersebut secara otomatis akan digunakan untuk dibandingkan, dan kita tidak bisa menentukan kolom mana yang akan digunakan untuk dibandingkan. Jika natural join ini digunakan pada tabel yang ternyata memiliki kolom yang sama tetapi berbeda type data maka akan terjadi error.
JOIN-USING : bisa digunakan jika pada tabel yang di join terdapat kolom yang memiliki nama yang sama untuk tipe data boleh sama boleh berbeda. Pada waktu JOIN kita bisa memilih kolom tertentu yang akan digunakan untuk dibandingkan, hal ini akan sangat berguna jika terdapat lebih dari satu kolom yang memiliki nama yang sama pada 2 tabel yang akan di JOIN.
JOIN-ON : bisa digunakan walapun pada tabel yang di join tidak terdapat kolom yang memiliki nama yang sama, atau bisa menggunakan kolom dengan nama yang berbeda untuk dibandingkan ketika JOIN.
JOIN dengan tabel yang sama bisa juga disebut SELF-JOIN
Left-Outer JOIN : akan menampilkan semua baris pada tabel yang terletak pada kiri syntax JOIN walapun tidak sesuai dengan tabel yang berada pada sebelah kanan JOIN.
Right-Outer JOIN : akan menampilkan semua baris pada tabel yang terletak pada kanan syntax JOIN walapun tidak sesuai dengan tabel yang berada pada sebelah kiri JOIN.
FULL-Outer JOIN : akan menampilkan semua baris pada tabel yang terletak pada kiri dan kanan syntax JOIN walapun tidak sesuai ketika dibandingkan.
Non-Equi Join merupakan join yang menggunakan tanda selain equal (=), misalkan tanda !=, >, <, >=, <=, dll
Cross Join : mengembalikan produk cartesian dari baris dari tabel dalam bergabung.
Dengan kata lain, hal itu akan menghasilkan baris yang menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua.
Klausa Using atau Join-U-using bisa digunakan jika pada tabel yang dijoin terdapat kolom yang memilik nama yang sama untuk tipe data boleh sama boleh berbeda. Pada waktu Join kita dapat memilih kolom tertentu yang akan digunakan untuk dibandingkan, hal ini akan sangat berguna jika terdapat lebih dari satu kolom yang memiliki nama yng sama pada 2 tabel yang akan di JOIN.
Equi Join didasarkan pada kondisi untuk perbandingan, dapat terjadi pada setiap INNER, OUTER atau SELF bergabung dalam SQL.
SQL
JOIN digunakan untuk mengambil informasi yang terkait pada satu atau
lebih tabel. Secara garis besar JOIN dibagi menjadi Equi Join dan
Non-Equi Join.
Equi Join merupakan Join yang menggunakan tanda equal (=) untuk membandingkan Operatornya. Secara garis besar Equi Joins terbagi menjadi
1. Inner JOIN : JOIN
yang hanya menampilkan data pada kolom yang sesuai dengan yang
dibandingkan, tidak akan mengeluarkan nilai NULL pada kolom yang
dibandingkan. Ada beberapa jenis JOIN pada Inner JOIN diantaranya :
Natural JOIN : bisa digunakan jika pada tabel yang di join terdapat kolom(atribut) yang memiliki nama yang sama dan type data yang sama. Pada waktu JOIN kolom tersebut secara otomatis akan digunakan untuk dibandingkan, dan kita tidak bisa menentukan kolom mana yang akan digunakan untuk dibandingkan. Jika natural join ini digunakan pada tabel yang ternyata memiliki kolom yang sama tetapi berbeda type data maka akan terjadi error.
JOIN-USING : bisa digunakan jika pada tabel yang di join terdapat kolom yang memiliki nama yang sama untuk tipe data boleh sama boleh berbeda. Pada waktu JOIN kita bisa memilih kolom tertentu yang akan digunakan untuk dibandingkan, hal ini akan sangat berguna jika terdapat lebih dari satu kolom yang memiliki nama yang sama pada 2 tabel yang akan di JOIN.
JOIN-ON : bisa digunakan walapun pada tabel yang di join tidak terdapat kolom yang memiliki nama yang sama, atau bisa menggunakan kolom dengan nama yang berbeda untuk dibandingkan ketika JOIN.
JOIN dengan tabel yang sama bisa juga disebut SELF-JOIN
2. Outer JOIN : tidak
hanya menampilkan kolom yang sesuai dengan yang dibandingkan, tetapi
juga kolom yang tidak sesuai dengan yang dibandingkan.
Left-Outer JOIN : akan menampilkan semua baris pada tabel yang terletak pada kiri syntax JOIN walapun tidak sesuai dengan tabel yang berada pada sebelah kanan JOIN.
Right-Outer JOIN : akan menampilkan semua baris pada tabel yang terletak pada kanan syntax JOIN walapun tidak sesuai dengan tabel yang berada pada sebelah kiri JOIN.
FULL-Outer JOIN : akan menampilkan semua baris pada tabel yang terletak pada kiri dan kanan syntax JOIN walapun tidak sesuai ketika dibandingkan.
Non-Equi Join merupakan join yang menggunakan tanda selain equal (=), misalkan tanda !=, >, <, >=, <=, dll
Cross Join : mengembalikan produk cartesian dari baris dari tabel dalam bergabung.
Dengan kata lain, hal itu akan menghasilkan baris yang menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua.
Klausa Using atau Join-U-using bisa digunakan jika pada tabel yang dijoin terdapat kolom yang memilik nama yang sama untuk tipe data boleh sama boleh berbeda. Pada waktu Join kita dapat memilih kolom tertentu yang akan digunakan untuk dibandingkan, hal ini akan sangat berguna jika terdapat lebih dari satu kolom yang memiliki nama yng sama pada 2 tabel yang akan di JOIN.
INTERSECTION (Irisan)
buat tabel perusahaan A dan perisahaan B berisi nik (char 2) dan nama (varchar 20) memakai INNER JOIN:
1. select * from perusahaanA
2. select * from perusahaanB
3. select perusahaanA.*, perusahaanB.*
-> from perusahaanA inner join perusahaanB
-> on perusahaanA.nik=perusahaanB.nik;
(menampilkan nik dan nama dari data karyawan yang merangkap bekerja di perusahaanA dan B saja)/ disebut juga irisan
2. select * from perusahaanB
3. select perusahaanA.*, perusahaanB.*
-> from perusahaanA inner join perusahaanB
-> on perusahaanA.nik=perusahaanB.nik;
(menampilkan nik dan nama dari data karyawan yang merangkap bekerja di perusahaanA dan B saja)/ disebut juga irisan
memakai LEFT JOIN
1. select perusahaanA.*, perusahaanB.*
-> from perusahaanA left join perusahaanB
-> on perusahaanA.nik=perusahaanB.nik;
(mengutamakan data di sebelah kiri, sehingga isi dari tabel di sebelah kanan di isi null)
1. select perusahaanA.*, perusahaanB.*
-> from perusahaanA left join perusahaanB
-> on perusahaanA.nik=perusahaanB.nik;
(mengutamakan data di sebelah kiri, sehingga isi dari tabel di sebelah kanan di isi null)
memakai RIGHT JOIN:
1. select perusahaanA.*, perusahaanB.*
-> from perusahaanA right join perusahaanB
-> on perusahaanA.nik=perusahaanB.nik;
(mengutamakan isi dari tabel di sebelah kanan, sehingga isi di tabel di sebelah kiri yang di isi NULL pada karyawan yang tidak merangkap pekerjaan)
1. select perusahaanA.*, perusahaanB.*
-> from perusahaanA right join perusahaanB
-> on perusahaanA.nik=perusahaanB.nik;
(mengutamakan isi dari tabel di sebelah kanan, sehingga isi di tabel di sebelah kiri yang di isi NULL pada karyawan yang tidak merangkap pekerjaan)
UNION (Gabungan)
dipakai untuk menggabungkan beberapa perintah SELECT yang menghasilkan sebuah gabungan.
SELECT * FROM AUNIONSELECT * FROM B;
Implementasi:
1. select * from perusahaanA
-> union
-> select * from perusahaanB;
(menampilkan semua data karyawan di perusahaan A dan B, karyawan yang mendobel bekerja di 2 perusahaan di tulis 1 kali saja)
-> union
-> select * from perusahaanB;
(menampilkan semua data karyawan di perusahaan A dan B, karyawan yang mendobel bekerja di 2 perusahaan di tulis 1 kali saja)
UNION ALL
sama dengan UNION tapi akan menampilkan semua data meskipun data tersebut sama.
Query bersarang ( Nested Query)SELECT * FROM AUNION ALLSELECT * FROM B;
Dalam SQL dikenal Query bersarang, Query dalam Query
Contoh : select npm, nama, kd_jurusan from tbl_mahasiswa where
kd_jurusan IN ( select kd_jurusan from table jurusan where
kd_jurusan='TI0004';
yuhuuu...bermanfaat sekali
BalasHapusSolder uap