Top Banner
BASISDATA ( QUERY ANTAR TABEL )
26

BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

Jan 11, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

BASISDATA( QUERY ANTAR TABEL )

Page 2: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

Pendahuluan

Sql mempunyai kemampuan untuk menggabungkan dua buah

tabel atau lebih guna membentuk informasi.

Prosesnya disebut dengan Join.

Page 3: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 4: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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

Page 5: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 6: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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

A B

1 2

3 4

X Y

5 6

7 8

Tabel1 Tabel 2

Page 7: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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

Page 8: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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

Page 9: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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’;

Page 10: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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}

Page 11: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 12: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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 }

Page 13: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

Id_bin

Nama

Tgl_lahir

sex

Id_bin

Kode_film

peranKunci

primer

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

Page 14: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

Select infoprib.nama, main.kode_film, main.peran

From infoprib, main

WHERE infoprib.id_bin=main.id_bin

Id_sales

Nama_sales

kota

Id_pelanggan

Nama_pelang

Kota

Id_sales

Kunci

primer

Kunci tamu

Terhadap

penjual

Select penjual.nama_sales, pelanggan.nama_pelang

From salesman, pelanggan

WHERE salesman.kota=pelanggan.kota

salesman pelangga

n

Page 15: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 16: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 17: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

Perlu diketahui, A EXCEPT B dan B EXCEPT A memberikan

hasil yang berbeda.

Contoh :

SELECT hewan

FROM hewandrt

EXCEPT

SELECT hewan

FROM hewanair;

Page 18: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

MENGENAL OPERATOR JOIN

Page 19: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

Pendahuluan Bab ini membahas sejumlah operator JOIN yang disediakan

pada sistem yang mengikuti SQL92, seperti CROSS JOIN,

NATURAL JOIN, LEFT OUTER JOIN, dan

Page 20: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 21: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 22: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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;

Page 23: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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

Page 24: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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.

Page 25: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

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.

Page 26: BASISDATA ( QUERY ANTAR TABEL )teguh-cahyono.blog.unsoed.ac.id/files/2010/06/Query-antar-tabel1.pdf · 2. Menggunakan Alias. Nama tabel yang digunakan dalam query antar tabel bisa

TERIMA KASIH