Menerapkan penggunaan SQL untuk mengakses multitable
a. Join merupakan sebuah konsep di dalam pengolahan data pada database.
Konsep ini menggabungkan dua buah tabel atau lebih sehingga menghasilkan sebuah
tabel baru yang bersifat temporary atau sementara.
Melalui tabel baru ini akan dapat diperoleh hubungan tiap data pada tabel-tabel yang digabungkan. Tabel baru ini disebut sebagai joined table.
b.
Macam-Macam
Join
Pada MySQL dikenal beberapa macam join
yang dapat dikelompokkan menjadi dua, yaitu inner join dan outer join.
Inner join dapat dibagi kembali menjadi natural join dan cross
join. Sedangkan outer join dapat dibedakan menjadi left outer
join, right
outer join, dan full outer join.
1.
Inner
Join dan Natural Join
Inner join dan natural join merupakan join
yang digunakan untuk menemukan persimpangan atau perpotongan antara dua buah
tabel yang di-join-kan. Join ini akan mengembalikan atau menampilkan data-data yang saling
berpasangan di anatara kedua
buah tabel. Syntax untuk inner
join dan natural join adalah sebagai berikut:
Cara #1. Inner Join dengan WHERE.
Penggabungan dengan klausa WHERE memiliki bentuk umum
sebagai berikut:
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE
tabel1.PK=tabel2.FK;
Cara #2. Inner Join dengan klausa INNER JOIN.
Berikut ini bentuk umumnya:
SELECT tabel1.*, tabel2.* FROM tabel1 INNER JOIN
tabel2 ON tabel1.PK=tabel2.FK;
2.
Cross
Join
Cross join
merupakan inner join dengan seluruh kondisi join (tidak hanya
data yang berpasangan) dianggap bernilai true. Sesuai dengan namanya, join
ini akan mengembalikan semua kemungkinanpasangan atau persilangan data pada
tabel yang satu dengan data pada tabel yang lainnya. Syntax untuk cross
join adalah sebagai berikut:
SELECT nama_kolom
FROM tabel_1 CROSS JOIN tabel_2;
3. Left Outer Join dan Right Outer Join
Left outer join merupakan join yang akan mengembalikan seluruh data
pada tabel sebelah kiri (left table) yang memiliki pasangan pada tabel
sebelah kanan (right table) ditambah data-data pada left table
yang tidak memiliki pasangan pada tabel sebelah kanan. Sedangkan right outer
join sebaliknya.Untuk
data-data yang tidak memiliki pasangan, pada joined table yang dihasilkan
data-data tersebut akan dipasangkan dengan data null. Syntax untuk
left outer join dan right outer join adalah sebagai berikut:
SELECT nama_kolom
FROM tabel_kiri
LEFT OUTER JOIN tabel_kanan
ON tabel_kiri.nama_kolom
= tabel_kanan.nama_kolom;
SELECT nama_kolom
FROM tabel_kiri
RIGHT OUTER JOIN tabel_kanan
ON tabel_kiri.nama_kolom = tabel_kanan.nama_kolom;
4. Full Outer Join
Full outer join merupakan kombinasi dari hasil left outer join
dengan right outer join. MySQL
tidak mengenal klausa full outer join. Oleh karena itu, untuk
mendapatkan joined table hasil dari full outer join digunakan
klausa atau operator UNION untuk menggabungkan hasil query yang
menggunakan left outer join dengan hasil query yang menggunakan right
outer join. Syntax untuk full outer join adalah sebagai
berikut:
SELECT nama_kolom
FROM tabel_kiri
LEFT OUTER JOIN tabel_kanan
ON tabel_kiri.nama_kolom
= tabel_kanan.nama_kolom
UNION
SELECT nama_kolom
FROM tabel_kiri
RIGHT OUTER JOIN tabel_kanan
ON tabel_kiri.nama_kolom
= tabel_kanan.nama_kolom;
c.
Penggunaan
Operator IS NULL
Seperti yang telah dijelaskan pada bagian outer join,
data yang diperoleh dari suatu query dapat mengandung nilai null.
Untuk mem-filter query agar hanya menampilka data yang mengandung nilai null
saja dapat menggunakan operator IS NULL pada klausa WHERE.
d.
Penggunaan
Operator DISTINCT
Pada saat melakukan pengambilan data di dalam database
terkadang dijumpai suatu kondisi dimana data yang sama diperoleh atau muncul
lebih dari satu baris. Untukmenghilangkan kemunculan data yang berulang-ulang
ini dapat menggunakan operator DISTINCT pada klausa SELECT. Dengan
menggunakan operator ini, data yang sama hanya akan muncul satu kali atau hanya
pada satu baris.
e.
Penggunaan
Operator AS
Operator AS berfungsi untuk mengubah nama kolom atau
field pada suatu hasil query. Perubahan nama kolom ini hanya
berlaku pada hasil query tersebut, tidak mengubah nama kolom asalnya.
Tidak ada komentar: