Belajar Database PostgreSQL - Contoh Penggunaan Join - Java Community

Belajar Database PostgreSQL - Contoh Penggunaan Join

Pada kesempatan kali ini kita akan membahas Cara dan Contoh Penggunaan JOIN, Klausa JOIN digunakan untuk menggabungkan dari dua atau lebih tabel dalam database. JOIN adalah sarana untuk menggabungkan field dari dua tabel.

Tipe Join di PostgreSQL

Pada PostgreSQL terdapat beberapa tipe join yang dapat kalian lakukan, antara lain : Inner Join, Left Join, Right Join, Cross Join, Full Join. Kita akan membahas semua tipe join tersebut beserta dengan contoh penggunaannya.

Persiapan

Sebelum masuk ke pembahasan mengenai penggunaan join, terlebih dahulu kalian harus membuat 3(dua) buah tabel (tbl_pelanggan, tbl_transaksi dan tbl_transaksi_detail). Berikut perintah untuk membuat tabel dan memberikan data awal yang akan kita gunakan dalam tutorial kali ini.
Buat DB
CREATEDB -U postgres -p 7117 db_retail
  
Catatan
Pada pembuatan database db_retail, saya menggunakan PORT 7117. Silahkan sesuaikan dengan PORT PostgreSQL yang kalian install, default dari PORT PostgreSQL adalah 5432.
Buat Tabel
CREATE TABLE tbl_pelanggan(
	id bigserial NOT NULL,
	nomor_pelanggan varchar(255),
	nama_pelanggan varchar(255),
	CONSTRAINT pelanggan_pkey PRIMARY KEY (id)
);

CREATE TABLE tbl_transaksi(
	id bigserial NOT NULL,
	kode_transaksi varchar(255) NOT NULL,
	tanggal_transaksi date NOT NULL,
	nomor_pelanggan varchar(255),
	CONSTRAINT transaksi_pkey PRIMARY KEY (id)
);

CREATE TABLE tbl_transaksi_detail(
	id bigserial NOT NULL,
	id_transaksi bigserial NOT NULL,
	kode_produk varchar(255) NOT NULL,
	nama_produk varchar(255) NOT NULL,
	jumlah_produk int,
	harga double precision,
	diskon double precision,
	CONSTRAINT transaksi_details_pkey PRIMARY KEY (id),
    CONSTRAINT transaksi_fkey FOREIGN KEY (id_transaksi)
        REFERENCES tbl_transaksi (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE CASCADE
);
  
Data
INSERT INTO tbl_pelanggan(id, nomor_pelanggan, nama_pelanggan) 
VALUES (1, 'P-A101', 'Akbar');
INSERT INTO tbl_pelanggan(id, nomor_pelanggan, nama_pelanggan) 
VALUES (2, 'P-A201', 'Luqman');

INSERT INTO tbl_transaksi(id, kode_transaksi, tanggal_transaksi, nomor_pelanggan)
VALUES (1, 'TRX-101', '2022-01-29', 'P-A101');
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (1, 1, 'CK-001', 'USB 64Gb Kingston', 12, 96000, 6000);
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (2, 1, 'AK-001', 'Alkaline', 6, 26000, 0);
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (3, 1, 'AK-002', 'Baterai ABC', 5, 20000, 0);

INSERT INTO tbl_transaksi(id, kode_transaksi, tanggal_transaksi, nomor_pelanggan)
VALUES (2, 'TRX-102', '2022-02-15', '');
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (4, 2, 'CK-034', 'SSD 512 ADATA', 1, 456000, 9000);
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (5, 2, 'AH-501', 'Mouse Logitech', 2, 299000, 20000);
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (6, 2, 'AK-002', 'Baterai ABC', 4, 20000, 0);

INSERT INTO tbl_transaksi(id, kode_transaksi, tanggal_transaksi, nomor_pelanggan)
VALUES (3, 'TRX-103', '2022-02-23', 'P-A201');
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (7, 3, 'AH-045', 'Keyboard RedDragon', 2, 358000, 16000);
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (8, 3, 'AH-004', 'LCD Samsung 21 Inch', 5, 2100000, 0);
INSERT INTO tbl_transaksi_detail(id, id_transaksi, kode_produk, nama_produk, jumlah_produk, harga, diskon)
VALUES (9, 3, 'CK-049', 'DDR4 16Gb Corsair', 2, 867000, 0);
  

Inner Join

Inner Join juga dikenal sebagai join atau join yang sederhana. Inner join adalah jenis yang paling umum digunakan.

Sintaks
SELECT table1.columns, table2.columns
FROM table1
INNER JOIN table2
ON table1.common_filed = table2.common_field;

Contoh Penggunaan Inner Join

Contoh 1
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan 
FROM tbl_transaksi t
INNER JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
Contoh Penggunaan Inner Join
Contoh 2
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan, kode_produk, nama_produk, 
jumlah_produk, harga, diskon, (harga - diskon)*jumlah_produk total
FROM tbl_transaksi t
INNER JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
INNER JOIN tbl_transaksi_detail det ON t.id = det.id_transaksi
Contoh Penggunaan Inner Join

Left Join

Left Join mengembalikan semua baris dari tabel kiri(tabel 1) dan hanya baris dari tabel lain dimana join dalam kondisi terpenuhi. Left join berlawanan mutlak dengan right join.

left join

Sintaks
SELECT table1.columns, table2.columns
FROM table1
LEFT JOIN table2
ON table1.common_filed = table2.common_field;

Contoh Penggunaan Left Join

Contoh 3
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan 
FROM tbl_transaksi t
LEFT JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
Contoh Penggunaan Left Join
Contoh 4
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan, kode_produk, nama_produk, 
jumlah_produk, harga, diskon, (harga - diskon)*jumlah_produk total
FROM tbl_transaksi t
LEFT JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
LEFT JOIN tbl_transaksi_detail det ON t.id = det.id_transaksi
Contoh Penggunaan Left Join

Right Join

Right join mengembalikan semua baris dari tabel kanan(tabel 2) dan hanya baris dari tabel lain dimana join dalam kondisi terpenuhi. Right join berlawanan mutlak dengan left join.

right join
Sintaks
SELECT table1.columns, table2.columns
FROM table1
RIGHT JOIN table2
ON table1.common_filed = table2.common_field;

Contoh Penggunaan Right Join

Contoh 5
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan 
FROM tbl_transaksi t
RIGHT JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
Contoh Penggunaan Right Join
Contoh 6
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan, kode_produk, nama_produk, 
jumlah_produk, harga, diskon, (harga - diskon)*jumlah_produk total
FROM tbl_transaksi t
RIGHT JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
LEFT JOIN tbl_transaksi_detail det ON t.id = det.id_transaksi
Contoh Penggunaan Right Join

Cross Join

Cross join mencocokan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua. Jika table1 memiliki "x" kolom dan table2 memiliki "y" kolom maka tabel yang dihasilkan akan memiliki (x + y) kolom.

cross join
Sintaks
SELECT columns
FROM table1
CROSS JOIN table2;

Contoh Penggunaan Cross Join

Contoh 7
SELECT t.id, kode_transaksi, tanggal_transaksi, 
nomor_pelanggan, kode_produk, nama_produk, jumlah_produk, 
harga, diskon, (harga - diskon)*jumlah_produk total 
FROM tbl_transaksi t
CROSS JOIN tbl_transaksi_detail det
Contoh Penggunaan Cross Join

Full Join

Full join mengembalikan semua baris tabel kiri(tabel 1) dan tabel kanan(tabel 2). Full join akan memberikan nilai NULL pada field yang kondisi join tidak sesuai.
Sintaks
SELECT table1.columns, table2.columns
FROM table1
FULL JOIN table2
ON table1.common_filed = table2.common_field;

Contoh Penggunaan Full Join

Contoh 8
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan 
FROM tbl_transaksi t
FULL JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
Contoh Penggunaan Full Join
Contoh 9
SELECT t.id, kode_transaksi, tanggal_transaksi, 
t.nomor_pelanggan, nama_pelanggan, kode_produk, nama_produk, 
jumlah_produk, harga, diskon, (harga - diskon)*jumlah_produk total
FROM tbl_transaksi t
FULL JOIN tbl_pelanggan p ON t.nomor_pelanggan = p.nomor_pelanggan
LEFT JOIN tbl_transaksi_detail det ON t.id = det.id_transaksi
Contoh Penggunaan Full Join

Sekian tutorial dan contoh penggunaan join pada postgresql. Silahkan tinggalkan komentar.

Subscribe to receive free email updates:

1 Response to "Belajar Database PostgreSQL - Contoh Penggunaan Join"