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!
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