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 From main,film main.id_bin, film.judul, main.peran 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 contoh : Select main.id_bin, film.judul, main.peran From main,film where main.kode_film = film.kode_film; Dapat ditulis menjadi Select m.id_bin, fi.judul, m.peran From m,f where m.kode_film = f.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 B X Y 1 2 5 6 3 4 7 8
Jikz dilakukan operasi berikut : Select * from tabel1,tabel2 ; Maka hasilnya menjadi A B X Y 1 2 5 6 3 4 5 6 1 2 7 8 3 4 7 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 nama alasan 1 Yuyun - 2 Farkhan - 5 Karun - 6 Sita Devi - {4 rows}
no_uji nama 2 Kartika 4 Edi Putra 7 Johan 8 Friska 9 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 Id_bin Nama Tgl_lahir sex 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 kota Kunci 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 : Contoh : tabela CROSS JOIN tabelb SELECT * FROM tabel1 CROSS JOIN tabel2;
{4 rows} a b x y 1 2 5 6 3 4 5 6 1 2 7 8 3 4 7 8 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