Join Tabel

19
Join Tabel Join Tabel STIKOM BALI Created by : Ida Ayu Putu Hera Widhi Asri [email protected]

Transcript of Join Tabel

Join TabelJoin Tabel

STIKOM BALI

Created by :

Ida Ayu Putu Hera Widhi Asri

[email protected]

Buatlah tabel KategoriBuatlah tabel Kategori

CREATE TABLE KATEGORI(KODE_KATEGORI VARCHAR (8)

PRIMARY KEY,NAMA_KATEGORI VARCHAR (20)

)

Buatlah tabel barang dan Buatlah tabel barang dan hubungkan dengan tabel hubungkan dengan tabel kategorikategoriCREATE TABLE BARANG(

KODE_BARANG VARCHAR(8) PRIMARY KEY,

NAMA VARCHAR (20),QTY INT,KD_KATEGORI VARCHAR (8),HARGA INT

CONSTRAINT FK_KODE_KATEGORI FOREIGN KEY(KD_KATEGORI)REFERENCES KATEGORI(KODE_KATEGORI))

Buatlah tabel transaksi dan Buatlah tabel transaksi dan hubungkan dengan tabel hubungkan dengan tabel barangbarangCREATE TABLE TRANSAKSI(

NO_TRANSAKSI INT PRIMARY KEY,TGL VARCHAR (20),KODE_BARANG VARCHAR(8),TOTAL INT,

CONSTRAINT FK_KODE_BARANG FOREIGN KEY(KODE_BARANG)

REFERENCES BARANG(KODE_BARANG))

isi tabel kategoriisi tabel kategoriINSERT INTO KATEGORI VALUES

('K0001','MURAH')INSERT INTO KATEGORI VALUES

('K0002','MAHAL')INSERT INTO KATEGORI VALUES

('K0003','TERJANGKAU')INSERT INTO KATEGORI VALUES

('K0006','ISTIMEWA')INSERT INTO KATEGORI VALUES

('K0007','BIASA')INSERT INTO KATEGORI VALUES

('K0008','SPEKTAKULER')

Isi tabel barangIsi tabel barangINSERT INTO BARANG VALUES

('BRG01','MONITOR',10,'K0002',1000000)INSERT INTO BARANG VALUES

('BRG02','NOTEBOOK',20,'K0002',6500000)

INSERT INTO BARANG VALUES ('BRG03','SOUND CARD',13,'K0001',450000)

INSERT INTO BARANG VALUES ('BRG04','VGA CARD',24,'K0003',725000)

INSERT INTO BARANG VALUES ('BRG05','FLASDISK',32,'K0001',150000)

Isi tabel barangIsi tabel barangINSERT INTO BARANG VALUES

('BRG06','MOTHERBOARD',9,'K0002',1250000)

INSERT INTO BARANG VALUES ('BRG07','MEMORY',19,'K0001',350000)

INSERT INTO BARANG VALUES ('BRG08','HARDISK',38,'K0003',775000)

INSERT INTO BARANG VALUES ('BRG09','MOUSE',20,NULL,100000)

INSERT INTO BARANG VALUES ('BRG010','KEYBOARD',50,NULL,150000)

INSERT INTO BARANG VALUES ('BRG011','SPEAKER',15,NULL,300000)

Isi tabel transaksiIsi tabel transaksiINSERT INTO TRANSAKSI VALUES

(1,'12/11/2007','BRG01',2000000)INSERT INTO TRANSAKSI VALUES

(2,'30/11/2007','BRG03',3500000)INSERT INTO TRANSAKSI VALUES

(3,'24/11/2007','BRG02',1550000)INSERT INTO TRANSAKSI VALUES

(4,'01/12/2007','BRG07',6000000)

Isi tabel transaksiIsi tabel transaksiINSERT INTO TRANSAKSI VALUES

(5,'07/12/2007','BRG08',4500000)INSERT INTO TRANSAKSI VALUES

(6,'17/12/2007','BRG04',3000000)INSERT INTO TRANSAKSI VALUES

(7,'01/12/2007','BRG08',4500000)INSERT INTO TRANSAKSI VALUES

(8,'07/12/2007','BRG04',3000000)

I Wayan Budi Sentana,ST

JOINJOINJoin adalah teknik yang digunakan

untuk mengakses lebih dari satu tabel dan menggabungkan hasilnya

Perhatikan tabel yang terbentuk jika anda mengeksekusi perintah berikut :◦SELECT * FROM KATEGORI◦SELECT * FROM BARANG◦SELECT * FROM TRANSAKSI

INNER JOININNER JOINinner join paling sering digunakan

dalam menggabungkan dua ataupun lebih table.

Select kolom,kolom,kolom from table1,table2 where kolom yang sama.table1=kolom yang sama.table2

Inner join mempunyai dua Inner join mempunyai dua jenis secara umum yaitu : jenis secara umum yaitu :

a. Tanpa alias Tanpa alias disini diartikan bahwa

nama table tidak dialiaskan atau tetap disebut secara panjang. Contoh :

SELECT KATEGORI.NAMA_KATEGORI, BARANG.NAMA

FROM KATEGORI,BARANGWHERE BARANG.KD_KATEGORI =

KATEGORI.KODE_KATEGORI

Lanjutan…Lanjutan…b. Dengan alias Disini nama table diberikan alias atau

singkatan sesuai dengan huruf depan dari nama table tersebut. Contoh table Barang diberi inisial/alias B, supplier inisialnya S, dan lain sebagainya. Cara penggunaannya sama seperti tanpa alias, sebagai contoh :

SELECT K.NAMA_KATEGORI, B.NAMAFROM KATEGORI K ,BARANG BWHERE B.KD_KATEGORI =

K.KODE_KATEGORI

INNER JOIN --> ONE TO INNER JOIN --> ONE TO ONEONESELECT K.NAMA_KATEGORI,

B.NAMA,(B.QTY*B.HARGA)AS TOTAL

FROM BARANG B INNER JOIN KATEGORI K

ON B.KD_KATEGORI = K.KODE_KATEGORI

ORDER BY K.NAMA_KATEGORI

OUTER JOIN (LEFT) --> ONE OUTER JOIN (LEFT) --> ONE TO MANYTO MANYSELECT K.NAMA_KATEGORI,

B.NAMA,(B.QTY*B.HARGA)AS TOTAL

FROM KATEGORI K LEFT JOIN BARANG B

ON B.KD_KATEGORI = K.KODE_KATEGORI

ORDER BY K.NAMA_KATEGORI

OUTER JOIN (RIGHT) --> OUTER JOIN (RIGHT) --> MANY TO ONEMANY TO ONESELECT K.NAMA_KATEGORI,

B.NAMA,(B.QTY*B.HARGA)AS TOTAL

FROM KATEGORI K RIGHT JOIN BARANG B

ON B.KD_KATEGORI = K.KODE_KATEGORI

ORDER BY K.NAMA_KATEGORI

OUTER JOIN (FULL) --> OUTER JOIN (FULL) --> MANY TO MANYMANY TO MANYSELECT K.NAMA_KATEGORI,

B.NAMA,(B.QTY*B.HARGA)AS TOTAL

FROM KATEGORI K FULL JOIN BARANG B

ON B.KD_KATEGORI = K.KODE_KATEGORI

ORDER BY K.NAMA_KATEGORI

crosscross

SELECT K.NAMA_KATEGORI, B.NAMA,(B.QTY*B.HARGA)AS TOTAL

FROM KATEGORI K CROSS JOIN BARANG B

ORDER BY K.NAMA_KATEGORI

unionunion

SELECT KD_KATEGORI,NAMA FROM BARANG

WHERE KD_KATEGORI = 'K0003' UNIONSELECT KD_KATEGORI,NAMA FROM

BARANGWHERE KD_KATEGORI =

'K0001'AND QTY > 10