PostgreSQL Tipe Gabung dengan Contoh: Dalam, Luar, Kiri, Kanan
Apa yang Bergabung di PostgreSQL?
PostgreSQL Bergabung digunakan untuk mengambil data dari lebih dari satu tabel. Dengan Joins, kita dapat menggabungkan pernyataan SELECT dan JOIN menjadi satu pernyataan. Kondisi JOIN ditambahkan ke pernyataan, dan semua baris yang memenuhi kondisi dikembalikan. Nilai dari tabel berbeda digabungkan berdasarkan kolom umum. Kolom umum sebagian besar merupakan kunci utama pada tabel pertama dan kunci asing pada tabel kedua.
PostgreSQL Jenis Gabungan
Ada dua jenis Gabungan PostgreSQL:
- Inner Bergabung
- Gabungan Luar
PostgreSQL Gabung Batin
Ada 3 jenis Inner Joins PostgreSQL:
- Theta bergabung
- Gabungan alami
- EQUI bergabung
Gabung Theta
Gabungan theta memungkinkan seseorang untuk menggabungkan dua tabel berdasarkan kondisi yang diwakili oleh theta. Gabungan Theta dapat bekerja dengan semua operator pembanding. Dalam kebanyakan kasus, gabungan theta disebut sebagai gabungan dalam.
Gabung theta adalah tipe GABUNG yang paling dasar. Ini akan mengembalikan semua baris dari tabel di mana kondisi GABUNG terpenuhi.
sintaks:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Pertimbangkan tabel berikut dari database Demo:
Book:
Harga:
Kita ingin melihat nama setiap buku dan harganya. Kita dapat menjalankan perintah berikut:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Ini akan mengembalikan hal berikut:
Hanya 3 baris yang memenuhi kondisi gabungan.
Bergabunglah dengan EQUI
Gabungan EQUI memberi kita cara untuk menggabungkan dua tabel berdasarkan hubungan kunci utama/kunci asing. Misalnya:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Ini akan mengembalikan hal berikut:
Catatan telah dikembalikan dari kedua tabel berdasarkan kolom umum, yaitu kolom id.
Bergabung Alami
Jenis gabungan ini memberi kita cara lain untuk menulis gabungan EQUI. Kita dapat memperbaiki contoh sebelumnya dengan menambahkan kata kunci ALAMI seperti yang ditunjukkan di bawah ini:
SELECT * FROM Book NATURAL JOIN Price;
Ini akan mengembalikan hal berikut:
Hanya satu kolom id yang dikembalikan. NATURAL JOIN dapat mencatat bahwa kolom id adalah umum di kedua tabel. Hanya satu yang dikembalikan.
Gabungan Luar Postgres
Ada 3 jenis Gabungan Luar PostgreSQL:
- Gabung Luar Kiri
- Gabung Luar Kanan
- Gabung Luar Penuh
Gabung Luar Kiri Postgres
LEFT OUTER JOIN akan mengembalikan semua baris pada tabel di sisi kiri dan hanya baris di tabel sebelah kanan yang kondisi joinnya telah terpenuhi.
sintaks:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Kita perlu melihat nama setiap buku dan harganya. Kita dapat menjalankan perintah berikut:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Ini mengembalikan yang berikut:
Semua 4 baris dalam tabel Buku telah dikembalikan. Hanya 3 baris dari tabel Harga yang memenuhi kondisi gabungan. Oleh karena itu mereka dikembalikan. Buku terakhir tidak memiliki nilai harga yang sesuai.
Gabung Luar Kanan Postgres
RIGHT OUTER JOIN mengembalikan semua baris pada tabel di sisi kanan dan baris pada tabel di sisi kiri dimana kondisi join telah terpenuhi.
sintaks:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Sebagai contoh:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Ini mengembalikan yang berikut:
Semua baris dalam tabel Harga telah dikembalikan. Hanya baris dalam tabel Buku yang memenuhi kondisi gabungan yang dikembalikan. 3rd baris tidak memiliki nilai untuk nama karena tidak ditemukan kecocokan.
Gabung Luar Penuh PostgreSQL
Jenis JOIN ini akan mengembalikan semua baris pada tabel di sisi kiri dan semua baris pada tabel di sisi kanan dengan nol jika kondisi join tidak terpenuhi.
sintaks:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Sebagai contoh:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Ini mengembalikan yang berikut:
Semua baris dari semua tabel telah dikembalikan, dengan nol jika tidak ditemukan kecocokan.
Menggunakan pgAdmin
Tugas di atas dapat diselesaikan di pgAdmin sebagai berikut:
pgAdmin Gabung Dalam
Cara Menggunakan Theta Gabung PostgreSQL menggunakan pgAdmin
Berikut langkah-langkah menggunakan Theta Join di Postgres menggunakan pgAdmin:
Langkah 1) Masuk ke akun pgAdmin Anda
Buka pgAdmin dan Login menggunakan kredensial Anda
Langkah 2) Buat basis data Demo
- Dari bilah navigasi di sebelah kiri- Klik Database.
- Klik Demo.
Langkah 3) Ketikkan kueri
Ketik kueri di bawah ini di editor kueri:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Langkah 4) Jalankan kueri
Klik tombol Jalankan
Seharusnya mengembalikan hal berikut:
Bergabunglah dengan EQUI
Langkah 1) Masuk ke akun pgAdmin Anda.
Langkah 2)
- Dari bilah navigasi di sebelah kiri- Klik Database.
- Klik Demo.
Langkah 3) Ketik kueri di editor kueri:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Langkah 4) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Bergabung Alami
Langkah 1) Masuk ke akun pgAdmin Anda.
Langkah 2)
- Dari bilah navigasi di sebelah kiri- Klik Database.
- Klik Demo.
Langkah 3) Ketik kueri di editor kueri:
SELECT * FROM Book NATURAL JOIN Price;
Langkah 4) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
pgAdmin Gabung Batin Sederhana
Langkah 1) Masuk ke akun pgAdmin Anda.
Langkah 2)
- Dari bilah navigasi di sebelah kiri- Klik Database.
- Klik Demo.
Langkah 3) Ketik kueri di editor kueri:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Langkah 4) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
pgAdmin Gabung Luar
Gabung Luar Kiri
Langkah 1) Masuk ke akun pgAdmin Anda.
Langkah 2)
- Dari bilah navigasi di sebelah kiri- Klik Database.
- Klik Demo.
Langkah 3) Ketik kueri di editor kueri:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Langkah 4) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Gabung Luar Kanan
Langkah 1) Masuk ke akun pgAdmin Anda.
Langkah 2)
- Dari bilah navigasi di sebelah kiri- Klik Database.
- Klik Demo.
Langkah 3) Ketik kueri di editor kueri:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Langkah 4) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Gabung Luar Penuh
Langkah 1) Masuk ke akun pgAdmin Anda.
Langkah 2)
- Dari bilah navigasi di sebelah kiri- Klik Database.
- Klik Demo.
Langkah 3) Ketik kueri di editor kueri:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Langkah 4) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Ringkasan
- In PostgreSQL, kami menggunakan GABUNG ketika kami perlu mengambil nilai dari lebih dari satu tabel.
- INNER JOIN adalah tipe JOIN yang paling dasar. Ia mengembalikan semua catatan di mana kondisi GABUNG yang ditentukan terpenuhi.
- LEFT OUTER JOIN mengembalikan semua baris di tabel sebelah kiri dan hanya baris di tabel lain yang kondisi joinnya telah terpenuhi.
- RIGHT OUTER JOIN mengembalikan semua baris di tabel sebelah kanan dan hanya baris di tabel lain yang kondisi joinnya telah dipenuhi.
- Jenis JOIN ini mengembalikan semua baris di tabel sebelah kiri dan semua baris di tabel sebelah kanan dengan null yang kondisi joinnya tidak terpenuhi.
Unduh Database yang digunakan dalam Tutorial ini