PostgreSQL Birleşimi: Örneklerle İç, Dış, Sol, Sağ, Doğal

İçindekiler:

Anonim

PostgreSQL Birleştirme nedir?

PostgreSQL JOIN'ler birden fazla tablodan veri almak için kullanılır. JOIN'ler ile SELECT ve JOIN ifadelerini tek bir ifadede birleştirmemiz mümkündür. İfadeye bir JOIN koşulu eklenir ve koşulları karşılayan tüm satırlar döndürülür.

Farklı tablolardaki değerler, ortak sütunlara göre birleştirilir. Ortak sütun çoğunlukla ilk tablodaki birincil anahtar ve ikinci tablonun yabancı anahtarıdır.

Bu PostgreSQL eğitiminde şunları öğreneceksiniz:

  • PostgreSQL Birleştirme nedir?
  • Birleştirme Türleri
  • İç Birleşimler
    • Theta Join
    • EQUI Birleştirme
    • Doğal Birleştirme
  • Dış Birleşimler
    • SOL DIŞ KATILMA
    • SAĞ DIŞ BİRLEŞTİRME
    • Tam Dış Birleştirme
  • PgAdmin'i kullanma
  • İç Birleşimler
    • Theta Join
    • EQUI Birleştirme
    • Doğal Birleştirme
    • İÇ BİRLEŞTİRME (basit birleştirme)
  • Dış Birleşimler
    • SOL DIŞ KATILMA
    • SAĞ DIŞ BİRLEŞTİRME
    • Tam Dış Birleştirme

Birleştirme Türleri

PostgreSQL'de iki JOIN türü vardır:

  • İç Birleşimler
  • Dış Birleştirme

İç Birleşimler

3 tür iç birleşim vardır:

  • Teta birleştirme
  • Doğal birleşim
  • EQUI birleştirme

Theta Join

Bir teta birleştirmesi, teta ile temsil edilen koşula göre birinin iki tabloyu birleştirmesine izin verir. Theta birleşimleri tüm karşılaştırma operatörleriyle çalışabilir. Çoğu durumda, teta birleşimi iç birleşim olarak adlandırılır.

Teta birleşimi, en temel JOIN türüdür. JOIN koşulunun sağlandığı tablolardan tüm satırları döndürür.

Sözdizimi:

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

Demo veritabanının aşağıdaki tablolarını göz önünde bulundurun:

Kitap:

Fiyat:

Her kitabın adını ve ilgili Fiyatı görmek istiyoruz. Aşağıdaki komutu çalıştırabiliriz:

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

Bu, aşağıdakileri döndürecektir:

Birleştirme koşulunu yalnızca 3 satır karşıladı.

EQUI Birleştirme

EQUI birleştirme, birincil anahtar / yabancı anahtar ilişkisine dayalı olarak iki tabloyu birleştirmenin bir yolunu sağlar. Örneğin:

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

Bu, aşağıdakileri döndürecektir:

Kayıtlar, ortak sütunlara, yani id sütununa göre her iki tablodan döndürüldü.

Doğal Birleştirme

Bu tür bir birleştirme, bize bir EQUI katılımı yazmanın başka bir yolunu sunar. Önceki örneğimizi aşağıda gösterildiği gibi NATURAL anahtar kelimesini ekleyerek iyileştirebiliriz:

SELECT *FROM BookNATURAL JOIN Price;

Bu, aşağıdakileri döndürecektir:

Yalnızca bir kimlik sütunu döndürüldü. NATURAL JOIN, id sütununun iki tabloda ortak olduğunu fark edebildi. Sadece biri iade edildi.

Dış Birleşimler

PostgreSQL'de üç tür dış JOIN vardır:

  • Sol dış katılma.
  • Sağ Dış Birleştirme.
  • Tam Dış Birleştirme

SOL DIŞ KATILMA

LEFT OUTER JOIN, sol taraftaki tablodaki tüm satırları ve yalnızca sağ taraftaki tablodaki birleştirme koşulunun karşılandığı satırları döndürecektir.

Sözdizimi:

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

Her kitabın adını ve ilgili Fiyatı görmemiz gerekiyor. Aşağıdaki komutu çalıştırabiliriz:

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

Bu, aşağıdakileri döndürür:

Kitap tablosundaki 4 satırın tümü iade edildi. Fiyat tablosundaki yalnızca 3 satır birleştirme koşulunu karşıladı. Dolayısıyla iade edildiler. Son kitabın karşılık gelen bir fiyat değeri yok.

SAĞ DIŞ BİRLEŞTİRME

RIGHT OUTER JOIN, sağ taraftaki tablodaki tüm satırları ve birleştirme koşulunun karşılandığı sol taraftaki tablodaki satırları döndürür.

Sözdizimi:

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

Örneğin:

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

Bu, aşağıdakileri döndürür:

Fiyat tablosundaki tüm satırlar iade edildi. Yalnızca Kitap tablosundaki birleştirme koşulunu karşılayan satırlar döndürüldü. 3 rd eşleşme bulunamadı beri satır adı için hiçbir değeri yoktur.

Tam Dış Birleştirme

Bu tür JOIN, sol taraftaki tablodaki tüm satırları ve sağ taraftaki tablodaki tüm satırları, birleştirme koşulunun karşılanmadığı yerlerde boş değerlerle döndürecektir.

Sözdizimi:

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

Örneğin:

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

Bu, aşağıdakileri döndürür:

Tüm tablolardan tüm satırlar, hiçbir eşleşme bulunmayan boş değerlerle döndürüldü.

PgAdmin'i kullanma

Yukarıdaki görevler, pgAdmin'de aşağıdaki şekilde gerçekleştirilebilir:

İç Birleşimler

Theta Join

Adım 1) pgAdmin hesabınıza giriş yapın.

Adım 2)

  1. Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
  2. Demo 'yu tıklayın.

Adım 3) Sorguyu sorgu düzenleyicisine yazın:

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

Adım 4) Yürüt düğmesini tıklayın.

Aşağıdakileri döndürmelidir:

EQUI Birleştirme

Adım 1) pgAdmin hesabınıza giriş yapın.

Adım 2)

  1. Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
  2. Demo 'yu tıklayın.

Adım 3) Sorguyu sorgu düzenleyicisine yazın:

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

Adım 4) Yürüt düğmesini tıklayın.

Aşağıdakileri döndürmelidir:

Doğal Birleştirme

Adım 1) pgAdmin hesabınıza giriş yapın.

Adım 2)

  1. Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
  2. Demo 'yu tıklayın.

Adım 3) Sorguyu sorgu düzenleyicisine yazın:

SELECT *FROM BookNATURAL JOIN Price;

Adım 4) Yürüt düğmesini tıklayın.

Aşağıdakileri döndürmelidir:

İÇ BİRLEŞTİRME (basit birleştirme)

Adım 1) pgAdmin hesabınıza giriş yapın.

Adım 2)

  1. Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
  2. Demo 'yu tıklayın.

Adım 3) Sorguyu sorgu düzenleyicisine yazın:

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

Adım 4) Yürüt düğmesini tıklayın.

Aşağıdakileri döndürmelidir:

Dış Birleşimler

SOL DIŞ KATILMA

Adım 1) pgAdmin hesabınıza giriş yapın.

Adım 2)

  1. Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
  2. Demo 'yu tıklayın.

Adım 3) Sorguyu sorgu düzenleyicisine yazın:

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

Adım 4) Yürüt düğmesini tıklayın.

Aşağıdakileri döndürmelidir:

SAĞ DIŞ BİRLEŞTİRME

Adım 1) pgAdmin hesabınıza giriş yapın.

Adım 2)

  1. Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
  2. Demo 'yu tıklayın.

Adım 3) Sorguyu sorgu düzenleyicisine yazın:

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

Adım 4) Yürüt düğmesini tıklayın.

Aşağıdakileri döndürmelidir:

Tam Dış Birleştirme

Adım 1) pgAdmin hesabınıza giriş yapın.

Adım 2)

  1. Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
  2. Demo 'yu tıklayın.

Adım 3) Sorguyu sorgu düzenleyicisine yazın:

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

Adım 4) Yürüt düğmesini tıklayın.

Aşağıdakileri döndürmelidir:

Özet:

  • PostgreSQL'de, birden fazla tablodan değer almamız gerektiğinde JOIN kullanırız.
  • INNER JOIN, en temel JOIN türüdür. Belirtilen JOIN koşulunun karşılandığı tüm kayıtları döndürür.
  • LEFT OUTER JOIN, soldaki tablodaki tüm satırları ve yalnızca diğer tablodaki birleştirme koşulunun karşılandığı satırları döndürür.
  • RIGHT OUTER JOIN, sağ taraftaki tablodaki tüm satırları ve diğer tablodaki yalnızca birleştirme koşulunun karşılandığı satırları döndürür.
  • Bu tür JOIN, sol taraftaki tablodaki tüm satırları ve sağ taraftaki tablodaki tüm satırları, birleştirme koşulunun karşılanmadığı yerlerde boş değerlerle döndürür.

Bu Eğitimde kullanılan Veritabanını indirin