PostgreSQL Bergabung: Dalaman, Luar, Kiri, Kanan, Semula jadi dengan Contoh

Apa itu Gabungan PostgreSQL?

PostgreSQL JOIN digunakan untuk mengambil data dari lebih dari satu jadual. Dengan JOIN, adalah mungkin bagi kita untuk menggabungkan pernyataan SELECT dan JOIN menjadi satu penyataan. Syarat BERSAMA ditambahkan pada pernyataan, dan semua baris yang memenuhi syarat dikembalikan.

Nilai dari jadual yang berlainan digabungkan berdasarkan lajur biasa. Lajur umum kebanyakannya adalah kunci utama pada jadual pertama dan kunci asing dari jadual kedua.

Dalam tutorial PostgreSQL ini, anda akan belajar:

Jenis Bergabung

Terdapat dua jenis JOIN dalam PostgreSQL:

  • Batin Bergabung
  • Sambungan Luar

Batin Bergabung

Terdapat 3 jenis gabungan dalaman:

  • Theta turut serta
  • Sambungan semula jadi
  • EQUI sertai

Theta Sertai

Gabungan theta membolehkan seseorang bergabung dengan dua jadual berdasarkan keadaan yang diwakili oleh theta. Penggabungan Theta dapat berfungsi dengan semua operator perbandingan. Dalam kebanyakan kes, gabungan theta disebut sebagai gabung dalam.

Gabungan theta adalah jenis GABUNGAN yang paling asas. Ia akan mengembalikan semua baris dari jadual di mana syarat BERGABUNG dipenuhi.

Sintaks:

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

Pertimbangkan jadual pangkalan data Demo berikut:

Buku:

Harga:

Kami mahu melihat nama setiap buku dan Harga yang sesuai. Kita boleh menjalankan perintah berikut:

 SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id; 

Ini akan mengembalikan perkara berikut:

Hanya 3 baris yang memenuhi syarat bergabung.

EQUI Sertai

Penyertaan EQUI memberi kami cara untuk menggabungkan dua jadual berdasarkan hubungan kunci utama / kunci asing. Contohnya:

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

Ini akan mengembalikan perkara berikut:

Rekod telah dikembalikan dari kedua-dua jadual berdasarkan lajur biasa, iaitu lajur id.

Sambungan Semula Jadi

Jenis gabungan ini memberi kita cara lain untuk menulis penyertaan EQUI. Kita boleh memperbaiki contoh sebelumnya dengan menambahkan kata kunci ALAM seperti yang ditunjukkan di bawah:

 SELECT * FROM Book NATURAL JOIN Price; 

Ini akan mengembalikan perkara berikut:

Hanya satu lajur id yang dikembalikan. THE NATURAL JOIN dapat melihat bahawa lajur id adalah umum dalam dua jadual. Hanya seorang yang dikembalikan.

Bergabung di Luar

Terdapat tiga jenis JOIN luar di PostgreSQL:

  • Kiri Sambungan Luar.
  • Kanan Luar Bergabung.
  • Sertai Luar Sepenuhnya

BERGABUNG KIRI

LEFT OUTER JOIN akan mengembalikan semua baris dalam jadual di sebelah kiri dan hanya baris di meja sebelah kanan di mana keadaan bergabung telah dipenuhi.

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 Harga yang sesuai. Kita boleh menjalankan perintah berikut:

 SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id; 

Ini mengembalikan perkara berikut:

Semua 4 baris dalam jadual Buku telah dikembalikan. Hanya 3 baris dari jadual Harga yang memenuhi syarat bergabung. Oleh itu mereka dikembalikan. Buku terakhir tidak mempunyai nilai harga yang sepadan.

GABUNGAN KELUAR KANAN

RIGHT OUTER JOIN mengembalikan semua baris di meja di sebelah kanan dan baris di meja di sebelah kiri di mana keadaan bergabung telah dipenuhi.

Sintaks:

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

Contohnya:

 SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id; 

Ini mengembalikan perkara berikut:

Semua baris dalam jadual Harga telah dikembalikan. Hanya baris dalam jadual Buku yang memenuhi syarat bergabung yang dikembalikan. Yang 3rdbaris tidak mempunyai nilai untuk nama kerana tiada perlawanan.

Sertai Luar Sepenuhnya

JOIN jenis ini akan mengembalikan semua baris di meja di sebelah kiri dan semua baris di meja di sebelah kanan dengan nol di mana keadaan bergabung tidak memuaskan.

Sintaks:

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

Contohnya:

 SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id; 

Ini mengembalikan perkara berikut:

Semua baris dari semua jadual telah dikembalikan, dengan sifar yang tidak dijumpai.

Menggunakan pgAdmin

Tugas di atas dapat diselesaikan dalam pgAdmin seperti berikut:

Batin Bergabung

Theta Sertai

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

 SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id; 

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

EQUI Sertai

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

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

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

Sambungan Semula Jadi

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

 SELECT * FROM Book NATURAL JOIN Price; 

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

INNER JOIN (gabung sederhana)

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

 SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id; 

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

Bergabung di Luar

BERGABUNG KIRI

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

 SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id; 

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

GABUNGAN KELUAR KANAN

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

 SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id; 

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

Sertai Luar Sepenuhnya

Langkah 1) Log masuk ke akaun pgAdmin anda.

Langkah 2)

  1. Dari bar navigasi di sebelah kiri- Klik Pangkalan Data.
  2. Klik Demo.

Langkah 3) Taipkan pertanyaan dalam editor pertanyaan:

 SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id; 

Langkah 4) Klik butang Laksanakan.

Ia harus mengembalikan yang berikut:

Ringkasan:

  • Dalam PostgreSQL, kita menggunakan JOIN ketika kita perlu mendapatkan nilai dari lebih dari satu jadual.
  • INNER JOIN adalah jenis JOIN yang paling asas. Ia mengembalikan semua rekod di mana syarat JOIN yang ditentukan telah dipenuhi.
  • LEFT OUTER JOIN mengembalikan semua baris di meja sebelah kiri dan hanya baris di meja lain di mana syarat bergabung telah dipenuhi.
  • RIGHT OUTER JOIN mengembalikan semua baris di meja sebelah kanan dan hanya baris di meja lain di mana syarat bergabung telah dipenuhi.
  • JOIN jenis ini mengembalikan semua baris di meja sebelah kiri dan semua baris di meja sebelah kanan dengan null di mana keadaan bergabung tidak memuaskan.

Muat turun Pangkalan Data yang digunakan dalam Tutorial ini