Minggu, 17 Juni 2012

PENGGUNAAN CROSS JOIN, NATURAL/INNER JOIN DAN OUTER JOIN


Buatlah tabel dengan perintah dibawah ini  :
create database Toko_Buku
use Toko_Buku
create Table Penerbit(
Kd_Penerbit char(4) not null primary key,
Nama_Penerbit varchar(30))
select*from Penerbit

create Table Buku(
Kd_Buku char(4) not null primary key,
Judul varchar(30),
Pengarang varchar(30),
Stok int,
Hal int,
Kd_Penerbit char(4) references Penerbit(Kd_Penerbit))
select * from Buku

insert into Penerbit values('GN01','GANESHA')
insert into Penerbit values('ER02','ERLANGGA')
insert into Penerbit values('MR03','GRAMEDIA')
SELECT* FROM PENERBIT


INSERT INTO BUKU VALUES('001','FISIKA','DRS.DERYANTO','10','231','GN01')
INSERT INTO BUKU VALUES('002','MATEMATIKA','AHMAD','25','179','ER02')
INSERT INTO BUKU VALUES('003','BAHASA INDONESIA','SURIPNO','15','237','MR03')
select * from Buku


sekarang gunakan perintah cross join. Misalnya seperti perintah berikut ini:
select*from buku cross join penerbit
 

Keterangan :
Dalam penggunaan cross join disini ialah menggabungkan lebih dari satu tabel tanpa syarat apapun.  Jika tabel mempunyai 3 baris dan tabel penerbit 3 baris maka hasil cross join adalah 9 baris.

Untuk perintah Inner Join . Inner Join adalah join yang menghasilkan baris-baris yang minimal ada sebuah baris dari kedua tabel yang sesuai dengan kondisi join, baris-baris yang tidak sesuai dengan sebuah tabel baris dan tabel lain. Misalkan seperti perintah berikut :
select b.judul,b.pengarang,p.kd_penerbit from buku b
inner join penerbit p on b.kd_penerbit=p.kd_penerbit

 
Atau perintah diatas akan dibatasi kolom data yang bertumpuk, perintah diatas dapat diganti dengan memakai inner join style baru yang memakai kondisi where :
select b.judul,b.pengarang,p.kd_penerbit from buku b,penerbit p where b.kd_penerbit=p.kd_penerbit


keterangan maksud b. judul dan lainya adalah tampilan judul dari tabel buku. Dan begitu juga dengan b. pengarang. Sedangkan untuk p. kd_penerbit adalah tampilkan kode penerbit dari tabel penerbit.

Sedangkan untuk outer join akan menghasilkan semua data sebuah tabel dan membatasi data dari tabel lainnya. ada tiga tipe :
1.       LEFT OUTER JOIN
select b.judul,b.pengarang,p.kd_penerbit from buku b left outer join penerbit p on b.kd_penerbit=p.kd_penerbit
2.       RIGHT OUTER JOIN
select b.judul,b.pengarang,p.kd_penerbit from buku b right outer join penerbit p on b.kd_penerbit=p.kd_penerbit


3.       FULL OUTER JOIN
select b.judul,b.pengarang,p.kd_penerbit from buku b full outer join penerbit p on b.kd_penerbit=p.kd_penerbit


Untuk outer join hasilnya akan sama.

Tidak ada komentar:

Posting Komentar