PostgreSQL - JOINS

Hai, penggemar basis data yang sedang berkembang! Hari ini, kita akan mengemban sebuah perjalanan yang menarik melalui dunia JOIN PostgreSQL. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya disini untuk mengarahkan Anda melalui petualangan ini, langkah demi langkah. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - kita akan mulai dari dasar-dasar dan naik tingkat perlahan-lahan. Jadi, pasang topi keras maya Anda, dan mari kita masuk ke dalam!

PostgreSQL - Joins

Apa itu JOIN?

Sebelum kita melompat ke jenis JOIN yang berbeda, mari kita mengerti apa sebenarnya JOIN. Bayangkan Anda sedang merencanakan sebuah pesta besar (siapa yang tidak menyukai pesta basis data yang bagus, kan?). Anda memiliki dua daftar: satu dengan nama teman-teman Anda dan lainnya dengan minuman favorit mereka. JOIN seperti planner pesta magis yang membantu Anda menggabungkan daftar ini dalam berbagai cara untuk menciptakan daftar tamu yang sempurna dengan minuman favorit setiap orang.

Dalam istilah basis data, JOIN memungkinkan kita untuk menggabungkan baris dari dua atau lebih tabel berdasarkan kolom yang berhubungan antaranya. Sekarang, mari kita jelajahi jenis JOIN yang ditawarkan PostgreSQL.

The CROSS JOIN

Apa itu CROSS JOIN?

CROSS JOIN seperti mengundang setiap orang di kedua daftar Anda ke pesta, tanpa peduli Anda tahu preferensi minumannya atau tidak. Ini menggabungkan setiap baris dari tabel pertama dengan setiap baris dari tabel kedua.

Contoh CROSS JOIN

Mari kita buat dua tabel sederhana untuk contoh ini:

CREATE TABLE friends (
id SERIAL PRIMARY KEY,
name VARCHAR(50)
);

CREATE TABLE drinks (
id SERIAL PRIMARY KEY,
drink VARCHAR(50)
);

INSERT INTO friends (name) VALUES ('Alice'), ('Bob'), ('Charlie');
INSERT INTO drinks (drink) VALUES ('Cola'), ('Juice'), ('Water');

Sekarang, mari kita melakukan CROSS JOIN:

SELECT f.name, d.drink
FROM friends f
CROSS JOIN drinks d;

Hasil:

name drink
Alice Cola
Alice Juice
Alice Water
Bob Cola
Bob Juice
Bob Water
Charlie Cola
Charlie Juice
Charlie Water

Seperti yang Anda lihat, setiap teman digabungkan dengan setiap minuman. Seperti mengatakan, "Hey, semua orang bisa mencoba semua minuman!" Ini mungkin tidak selalu praktis, tetapi itu adalah cara bagus untuk menghasilkan semua kombinasi yang mungkin.

The INNER JOIN

Apa itu INNER JOIN?

INNER JOIN lebih selektif. Itu seperti mencocokkan teman Anda dengan minuman favorit mereka, tapi hanya mencakup teman yang memiliki preferensi minuman yang diketahui.

Contoh INNER JOIN

Mari kita modifikasi tabel kita sedikit:

CREATE TABLE friends (
id SERIAL PRIMARY KEY,
name VARCHAR(50)
);

CREATE TABLE favorite_drinks (
id SERIAL PRIMARY KEY,
friend_id INTEGER,
drink VARCHAR(50)
);

INSERT INTO friends (name) VALUES ('Alice'), ('Bob'), ('Charlie'), ('David');
INSERT INTO favorite_drinks (friend_id, drink) VALUES (1, 'Cola'), (2, 'Juice'), (3, 'Water');

Sekarang, mari kita melakukan INNER JOIN:

SELECT f.name, fd.drink
FROM friends f
INNER JOIN favorite_drinks fd ON f.id = fd.friend_id;

Hasil:

name drink
Alice Cola
Bob Juice
Charlie Water

Perhatikan bahwa David tidak muncul dalam hasil karena dia tidak memiliki minuman favorit yang terdaftar.

The LEFT OUTER JOIN

Apa itu LEFT OUTER JOIN?

LEFT OUTER JOIN seperti memastikan semua teman Anda berada di daftar tamu, bahkan jika Anda tidak tahu preferensi minumannya. mereka tanpa preferensi yang diketahui mungkin mendapat minuman default atau tanpa minuman sama sekali.

Contoh LEFT OUTER JOIN

Menggunakan tabel yang sama seperti dalam contoh INNER JOIN:

SELECT f.name, fd.drink
FROM friends f
LEFT OUTER JOIN favorite_drinks fd ON f.id = fd.friend_id;

Hasil:

name drink
Alice Cola
Bob Juice
Charlie Water
David NULL

Lihat bagaimana David dimasukkan sekarang, tetapi dengan minuman NULL? Itu keajaiban LEFT OUTER JOIN!

The RIGHT OUTER JOIN

Apa itu RIGHT OUTER JOIN?

RIGHT OUTER JOIN adalah kebalikan dari LEFT OUTER JOIN. Itu seperti memastikan semua minuman berada di daftar, bahkan jika tidak ada yang memilihnya sebagai favorit.

Contoh RIGHT OUTER JOIN

Mari kita tambahkan minuman yang tidak ada yang pilih sebagai favorit:

INSERT INTO favorite_drinks (drink) VALUES ('Lemonade');

SELECT f.name, fd.drink
FROM friends f
RIGHT OUTER JOIN favorite_drinks fd ON f.id = fd.friend_id;

Hasil:

name drink
Alice Cola
Bob Juice
Charlie Water
NULL Lemonade

Lemonade muncul dalam daftar meskipun tidak ada teman yang memilihnya sebagai favorit.

The FULL OUTER JOIN

Apa itu FULL OUTER JOIN?

FULL OUTER JOIN adalah mimpi planner pesta. Itu mencakup semua teman dan semua minuman, mencocokkan mereka di mana mungkin dan menggunakan NULL di mana tidak ada kecocokan.

Contoh FULL OUTER JOIN

SELECT f.name, fd.drink
FROM friends f
FULL OUTER JOIN favorite_drinks fd ON f.id = fd.friend_id;

Hasil:

name drink
Alice Cola
Bob Juice
Charlie Water
David NULL
NULL Lemonade

Ini memberikan gambaran lengkap: semua teman ( bahkan David tanpa minuman favorit) dan semua minuman ( bahkan Lemonade tanpa teman yang memilihnya).

Kesimpulan

Dan begitu pun, teman-teman! Kita telah mengemban perjalanan melalui dunia JOIN PostgreSQL, dari CROSS JOIN yang menyeluruh ke FULL OUTER JOIN yang komprehensif. Ingat, memilih JOIN yang tepat adalah seperti memilih campuran yang sempurna untuk pesta Anda - itu semua tergantung pada informasi yang Anda butuhkan dan bagaimana Anda ingin menggabungkan data Anda.

Latih JOIN ini, mainkan dengan berbagai skenario, dan segera Anda akan menjadi pribadi yang menyenangkan di pesta basis data! Siapa tahu mengelola data bisa begitu menyenangkan, kan? Sampai jumpa lagi, selamat mencari!

Credits: Image by storyset