Gabungan PostgreSQL: Dalam, Luar, Kiri, Kanan, Alami dengan Contoh

Daftar Isi:

Anonim

Apa itu Gabungan PostgreSQL?

PostgreSQL JOIN digunakan untuk mengambil data dari lebih dari satu tabel. Dengan JOIN, kita dapat menggabungkan pernyataan SELECT dan JOIN menjadi satu pernyataan. Kondisi JOIN ditambahkan ke pernyataan, dan semua baris yang memenuhi ketentuan dikembalikan.

Nilai dari tabel yang berbeda digabungkan berdasarkan kolom umum. Kolom umum sebagian besar adalah kunci utama di tabel pertama dan kunci asing dari tabel kedua.

Dalam tutorial PostgreSQL ini, Anda akan belajar:

  • Apa itu Gabungan PostgreSQL?
  • Jenis Gabungan
  • Inner Bergabung
    • Theta Bergabung
    • Gabung EQUI
    • Bergabung Alami
  • Gabungan Luar
    • LEFT OUTER GABUNG
    • KANAN OUTER GABUNG
    • Gabung Luar Penuh
  • Menggunakan pgAdmin
  • Inner Bergabung
    • Theta Bergabung
    • Gabung EQUI
    • Bergabung Alami
    • INNER JOIN (simple join)
  • Gabungan Luar
    • LEFT OUTER GABUNG
    • KANAN OUTER GABUNG
    • Gabung Luar Penuh

Jenis Gabungan

Ada dua jenis GABUNG di PostgreSQL:

  • Inner Bergabung
  • Gabung Luar

Inner Bergabung

Ada 3 jenis gabungan dalam:

  • Theta bergabung
  • Gabungan alami
  • EQUI bergabung

Theta Bergabung

Sebuah gabungan theta memungkinkan seseorang untuk menggabungkan dua tabel berdasarkan kondisi yang diwakili oleh theta. Gabungan Theta dapat bekerja dengan semua operator perbandingan. Dalam kebanyakan kasus, gabungan theta disebut sebagai gabungan dalam.

Gabungan theta adalah jenis GABUNG yang paling dasar. Ini akan mengembalikan semua baris dari tabel di mana kondisi JOIN terpenuhi.

Sintaksis:

SELECT columnsFROM table-1INNER JOIN table-2ON table-1.column = table-2.column;

Pertimbangkan tabel berikut dari database Demo:

Book:

Harga:

Kami ingin melihat nama setiap buku dan Harga yang sesuai. Kami dapat menjalankan perintah berikut:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

Ini akan mengembalikan yang berikut:

Hanya 3 baris yang memenuhi syarat bergabung.

Gabung EQUI

Gabungan EQUI memberi kita cara untuk menggabungkan dua tabel berdasarkan hubungan kunci utama / kunci asing. Sebagai contoh:

SELECT *FROM BookJOIN Price ON Book.id = Price.id;

Ini akan mengembalikan yang berikut:

Record telah dikembalikan dari kedua tabel berdasarkan kolom umum, yaitu kolom id.

Bergabung Alami

Jenis gabungan ini memberi kami cara lain untuk menulis gabungan EQUI. Kami dapat meningkatkan contoh kami sebelumnya dengan menambahkan kata kunci ALAMI seperti yang ditunjukkan di bawah ini:

SELECT *FROM BookNATURAL JOIN Price;

Ini akan mengembalikan yang berikut:

Hanya satu kolom id telah dikembalikan. NATURAL JOIN dapat mencatat bahwa kolom id adalah umum di dua tabel. Hanya satu yang dikembalikan.

Gabungan Luar

Ada tiga jenis GABUNG luar di PostgreSQL:

  • Gabung Luar Kiri.
  • Gabung Luar Kanan.
  • Gabung Luar Penuh

LEFT OUTER GABUNG

LEFT OUTER JOIN akan mengembalikan semua baris dalam tabel di sisi kiri dan hanya baris di tabel sisi kanan yang kondisi gabungannya telah terpenuhi.

Sintaksis:

SELECT columnsFROM table-1LEFT OUTER JOIN table-2ON table-1.column = table-2.column;

Kami perlu melihat nama setiap buku dan Harga yang sesuai. Kami dapat menjalankan perintah berikut:

SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;

Ini mengembalikan yang berikut:

Semua 4 baris di tabel Buku telah dikembalikan. Hanya 3 baris dari tabel Price yang memenuhi syarat penggabungan. Oleh karena itu mereka dikembalikan. Buku terakhir tidak memiliki nilai harga yang sesuai.

KANAN OUTER GABUNG

RIGHT OUTER JOIN mengembalikan semua baris dalam tabel di sisi kanan dan baris di tabel di sisi kiri di mana kondisi gabungan telah dipenuhi.

Sintaksis:

SELECT columnsFROM table-1RIGHT OUTER JOIN table-2ON table-1.column = table-2.column;

Sebagai contoh:

SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;

Ini mengembalikan yang berikut:

Semua baris di tabel Price telah dikembalikan. Hanya baris dalam tabel Buku yang memenuhi kondisi gabungan yang dikembalikan. The 3 rd baris tidak memiliki nilai untuk nama karena tidak ada kecocokan ditemukan.

Gabung Luar Penuh

Jenis JOIN ini akan mengembalikan semua baris dalam tabel di sisi kiri dan semua baris dalam tabel di sisi kanan dengan null di mana kondisi gabungan tidak terpenuhi.

Sintaksis:

SELECT columnsFROM table-1FULL OUTER JOIN table-2ON table-1.column = table-2.column;

Sebagai contoh:

SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;

Ini mengembalikan yang berikut:

Semua baris dari semua tabel telah dikembalikan, dengan null di mana tidak ada kecocokan yang ditemukan.

Menggunakan pgAdmin

Tugas di atas dapat diselesaikan di pgAdmin sebagai berikut:

Inner Bergabung

Theta Bergabung

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

Langkah 4) Klik tombol Execute.

Ini harus mengembalikan yang berikut:

Gabung EQUI

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

Langkah 3) Ketik kueri di editor kueri:

SELECT *FROM BookJOIN Price ON Book.id = Price.id;

Langkah 4) Klik tombol Execute.

Ini harus mengembalikan yang berikut:

Bergabung Alami

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

Langkah 3) Ketik kueri di editor kueri:

SELECT *FROM BookNATURAL JOIN Price;

Langkah 4) Klik tombol Execute.

Ini harus mengembalikan yang berikut:

INNER JOIN (simple join)

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.priceFROM BookINNER JOIN PriceON Book.id = Price.id;

Langkah 4) Klik tombol Execute.

Ini harus mengembalikan yang berikut:

Gabungan Luar

LEFT OUTER GABUNG

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.priceFROM BookLEFT JOIN PriceON Book.id = Price.id;

Langkah 4) Klik tombol Execute.

Ini harus mengembalikan yang berikut:

KANAN OUTER GABUNG

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.priceFROM BookRIGHT JOIN PriceON Book.id = Price.id;

Langkah 4) Klik tombol Execute.

Ini harus mengembalikan yang berikut:

Gabung Luar Penuh

Langkah 1) Masuk ke akun pgAdmin Anda.

Langkah 2)

  1. Dari bilah navigasi di sebelah kiri- Klik Database.
  2. Klik Demo.

Langkah 3) Ketik kueri di editor kueri:

SELECT Book.name, Price.priceFROM BookFULL OUTER JOIN PriceON Book.id = Price.id;

Langkah 4) Klik tombol Execute.

Ini harus mengembalikan yang berikut:

Ringkasan:

  • Di PostgreSQL, kami menggunakan GABUNG ketika kami perlu mengambil nilai dari lebih dari satu tabel.
  • INNER JOIN adalah tipe paling dasar dari JOIN. Ini mengembalikan semua rekaman di mana kondisi JOIN yang ditentukan terpenuhi.
  • LEFT OUTER JOIN mengembalikan semua baris di tabel sebelah kiri dan hanya baris di tabel lain yang kondisi gabungannya telah terpenuhi.
  • RIGHT OUTER JOIN mengembalikan semua baris di tabel sebelah kanan dan hanya baris di tabel lain yang kondisi gabungannya telah terpenuhi.
  • Jenis GABUNG ini mengembalikan semua baris di tabel sebelah kiri dan semua baris di tabel sebelah kanan dengan null di mana kondisi gabungan tidak terpenuhi.

Unduh Basis Data yang digunakan dalam Tutorial ini