BASISDATA ( QUERY ANTAR TABEL )
Pendahuluan Sql mempunyai kemampuan untuk menggabungkan dua buah
tabel atau lebih guna membentuk informasi. Prosesnya disebut dengan Join.
1. Query dengan dua buah tabel. Untuk memahami bagaimana menggabungkan dua buah tabel
berikut adalah sebagai contoh : Select main.id_bin, film.judul, main.peran From main,film where main.kode_film = film.kode_film;
Beberapa hal yang perlu diperhatikan pada query antar tabel ; a. Setiap kolom disebutkan dengan bentuk: nama_tabel.nama_kolom. b. Tabel yang terlibat dalam query perlu disebutkan dalam klausa From dengan antar tabel dipisah dengan tanda koma (,) c. Kondisi dalam klausa Where menentukan macam join yang terbentuk
2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa diberi nama
alias. Bentuk pemberian nama alias ; Select alias1.kolom, alias2. kolom from tabel1 alias1, tabel2 alias2 where kondisi Dapat ditulis menjadi contoh : Select m.id_bin, Select main.id_bin, fi.judul, film.judul, m.peran main.peran From m,f where m.kode_film = f.kode_film; From main,film where main.kode_film = film.kode_film;
3. Perkalian Kartesian Bentuk paling sederhana dari penggabungan dua buah
tabel akan membentuk perkalian kartesian. Bisa juga disebut Cross Join atua Full join. Hal ini diperoleh kalau kalusa where tidak disebutkan
Tabel1
Tabel 2
A 1 3
B 2 4
X 5 7
Y 6 8
Jikz dilakukan operasi berikut :
Select * from tabel1,tabel2 ; Maka hasilnya menjadi A 1 3 1 3
B 2 4 2 4
X 5 5 7 7
Y 6 6 8 8
Dalam prakteknya, operasi ini jarang digunakan dan dapat menimbulkan Proses yang sangat lama sekiranya data dari masing-masing tabel sangat besar
4. Equijoin dan Non-Equijoin. Yang disebut dengan equijoin adalah penggabungan antar tabel yang
menggunakan operator sama dengan(=) pada kondisi dalam klausa WHERE untuk membandingkan satu kolom dengan kolom lainnya. Bentuk yang kompleks ditunjukkan pada contoh berikut ; Select infoprib.nama, film.judul, main.peran from infoprib,main,film where main.kode_filom=film.kode_film AND main.id_bin=infoprib.id_bin contoh : main.kode_film=film.kode_filom digunakan untuk menghubungkan tabel main dengan film dan kondisi Main.id_bin=infoprib.id_bin
5. Self-Join. Self-Join merupakan upaya penggabungan dari tabel yang sama. Contoh self-join yaitu untuk memperoleh pasangan bintang film pria dan bintang film wanita yang terdapat pada tabel infoprib. Cara melakukannya adalah seperti berikut : Bentuk pemberian nama alias ; Select x.nama, y.nama from infoprib x, infoprib y where x.sex =‘P’ AND y.sex =‘W’;
6. Operator Union. Operator UNION berguna untuk menggabungkan hasil
dari dua buah query. Contoh dua tabel ditolak dan diterima ;
no_uji 1 2 5 6 {4 rows}
nama
alasan
Yuyun Farkhan Karun Sita Devi
-
no_uji
nama
2 4 7 8 9
Kartika Edi Putra Johan Friska Rukmana
10
Santosa
Select no_uji,nama From ditolak UNION Select no_uji, nama From diterima;
no_uji
nama
1
Yuyun
10
Santosa
2
Kartika
3
Farkhan
4
Edi Putra
5
Karun
6
Sita Devi
7
Johan
8
Friska
9
Rukmana
{10 rows }
Select infoprib.nama, main.kode_film, main.peran From infoprib, main
WHERE infoprib.id_bin=main.id_bin Id_bin Nama Tgl_lahir sex
Id_bin Kunci primer
Kode_film peran
Kunci tamu Terhadap infoprib
Menyatakan hubungan antartabel
Select infoprib.nama, main.kode_film, main.peran
From infoprib, main WHERE infoprib.id_bin=main.id_bin salesman Id_sales Nama_sales Kunci kota primer
pelangga n Id_pelanggan Nama_pelang Kota Id_sales
Kunci tamu Terhadap penjual
Select penjual.nama_sales, pelanggan.nama_pelang From salesman, pelanggan WHERE salesman.kota=pelanggan.kota
7. Operator INTERSECT. Operator INTERSECT berguna untuk memperoleh baris-baris yang terdapat pada kedua tabel. Contoh operator seperti berikut : SELECT hewan from hewanair INTERSECT SELECT hewan FROM hewandrt;
8. Operator EXCEPT/MINUS. Jika terdapat tabel A dan B, operasi A EXCEPT B akan menghasilkan semua yang ada pada A tetapi tidak terdapat pada B. Contoh : SELECT hewan FROM hewanair EXCEPT SELECT hewan FROM hewandrt;
Perlu diketahui, A EXCEPT B dan B EXCEPT A memberikan
hasil yang berbeda. Contoh : SELECT hewan FROM hewandrt EXCEPT SELECT hewan FROM hewanair;
MENGENAL OPERATOR JOIN
Pendahuluan Bab ini membahas sejumlah operator JOIN yang disediakan
pada sistem yang mengikuti SQL92, seperti CROSS JOIN, NATURAL JOIN, LEFT OUTER JOIN, dan
1. Operator CROSS JOIN. Operator CROSS JOIN berguna untuk melakukan operasi
cross join atau perkalian kartesian. Kaidah pemakaiannya dalam kluasa FROM : tabelA CROSS JOIN tabelB Contoh : SELECT * FROM tabel1 CROSS JOIN tabel2;
a
b
x
y
1
2
5
6
3
4
5
6
1
2
7
8
3
4
7
8
{4 rows}
• Pernyataan diatas identik dengan pernyatan : SELECT * FROM tabel1, tabel2;
2. Operator NATURAL JOIN. Operator NATURAL JOIN akan melakukan operasi equijoin dengan memperlakukan nama-nama kolom yang sama sebagai kolom penghubung antar tabel. contoh : SELECT infoprib.id_bin, infoprib.nama, main.id_bin, main.kode_film From infoprib NATURAL JOIN main;
Perintah diatas identik dengan :
SELECT infoprib.id_bin, infoprib.nama, main.id_bin, main.kode_film FROM infoprib, main WHERE infoprib.id_bin = main.id_bin Operator NATURAL JOIN menyebutkan kondisi infoprib.id_bin = main.id_bin
3. Operator Join yang lain. Operator – operator join yang lain adalah sebagai berikut : LEFT OUTER JOIN Bila baris pada tabel yang terletak di sebelah kiri operator ini ada
yang tidak memiliki pasangan dengan tabel yang terletak di kanan operator ini, baris ini disertakan dalam hasil penggabungan.
RIGHT OUTER JOIN
Merupakan kebalikan dari LEFT OUTER JOIN. Bila baris pada tabel yang terletak di sebelah kanan operator ini ada yang tidak memiliki pasangan dengan tabel yang terletak di kiri operator ini, baris ini tetap disertakan dalam hasil penggabungan. FULL OUTER JOIN Gabungan dari LEFT OUTER JOIN dan RIGHT OUTER JOIN. UNION JOIN Menggabungkan kedua tabel dengan kolom pasangannya akan diberi nilai NULL. Bila tabel pertama berisi N1 baris dan tabel kedua berisi N2 baris maka hasilnya berupa N1+N2 baris.
TERIMA KASIH