PostgreSQL Örneklerle Birleştirme Türleri: İç, Dış, Sol, Sağ
Birleşmeler nelerdir PostgreSQL?
PostgreSQL Katıldı Birden fazla tablodan veri almak için kullanılır. joins ile SELECT ve JOIN deyimlerini tek bir deyimde birleştirmemiz mümkün. İ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 birinci tablodaki birincil anahtar ve ikinci tablodaki yabancı anahtardır.
PostgreSQL Birleştirme Türleri
İki tür birleştirme vardır PostgreSQL:
- İç Birleşimler
- Dış Birleşimler
PostgreSQL İç birleşim
3 tür İç Birleştirme vardır PostgreSQL:
- Teta katılımı
- Doğal birleştirme
- EQUI'ye katılma
Tetaya Katılma
Teta birleşimi, kişinin teta tarafından temsil edilen koşula göre iki tabloyu birleştirmesine olanak tanır. Theta birleşimleri tüm karşılaştırma operatörleriyle çalışabilir. Çoğu durumda teta birleşimine iç birleştirme adı verilir.
Theta join, JOIN'in en temel türüdür. JOIN koşulunun sağlandığı tabloların tüm satırlarını döndürür.
Sözdizimi:
SELECT columns FROM table-1 INNER JOIN table-2 ON 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 karşılık gelen Fiyatını görmek istiyoruz. Aşağıdaki komutu çalıştırabiliriz:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Aşağıdakini döndürecektir:
Yalnızca 3 satır birleştirme koşulunu karşıladı.
EQUI'ye Katılın
EQUI birleşimi bize birincil anahtar/yabancı anahtar ilişkisine dayalı olarak iki tabloyu birleştirmenin bir yolunu sağlar. Örneğin:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Aşağıdakini döndürecektir:
Her iki tablodan da ortak sütunlara yani id sütununa göre kayıtlar döndürülmüştür.
Doğal Birleştirme
Bu birleştirme türü bize EQUI birleştirmesi yazmanın başka bir yolunu sağlar. Aşağıda gösterildiği gibi NATURAL anahtar kelimesini ekleyerek önceki örneğimizi geliştirebiliriz:
SELECT * FROM Book NATURAL JOIN Price;
Aşağıdakini döndürecektir:
Yalnızca bir kimlik sütunu döndürüldü. NATURAL JOIN, kimlik sütununun iki tabloda ortak olduğunu fark edebildi. Sadece bir tanesi iade edildi.
Postgres Dış Birleştirme
3 tür Dış Birleştirme vardır PostgreSQL:
- Sol dış katılma
- Sağ Dış Birleştirme
- Tam Dış Birleştirme
Postgres Sol Dış Birleştirme
LEFT OUTER JOIN, sol taraftaki tablodaki tüm satırları ve yalnızca sağ taraftaki tabloda birleştirme koşulunun karşılandığı satırları döndürür.
Sözdizimi:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Her kitabın adını ve karşılık gelen Fiyatını görmemiz gerekiyor. Aşağıdaki komutu çalıştırabiliriz:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Bu, aşağıdakileri döndürür:
Kitap tablosundaki 4 satırın tümü döndürüldü. Fiyat tablosundaki yalnızca 3 satır birleştirme koşulunu karşıladı. Bu nedenle iade edildiler. Son kitabın karşılık gelen fiyat değeri yok.
Postgres Sağ Dış Birleştirme
RIGHT OUTER JOIN, birleştirme koşulunun karşılandığı sağ taraftaki tablodaki tüm satırları ve sol taraftaki tablodaki satırları döndürür.
Sözdizimi:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Örneğin:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Bu, aşağıdakileri döndürür:
Fiyat tablosundaki tüm satırlar döndürüldü. Yalnızca Kitap tablosundaki birleştirme koşulunu karşılayan satırlar döndürüldü. 3rd Eşleşme bulunamadığından satırın ad değeri yok.
Tam Dış Katılım PostgreSQL
Bu JOIN türü, birleştirme koşulunun karşılanmadığı durumlarda sol taraftaki tablodaki tüm satırları ve sağ taraftaki tablodaki tüm satırları boş değerlerle döndürür.
Sözdizimi:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Örneğin:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Bu, aşağıdakileri döndürür:
Tüm tablolardaki tüm satırlar, eşleşme bulunamayan boş değerlerle birlikte döndürüldü.
pgAdmin'i kullanma
Yukarıdaki görevler pgAdmin'de aşağıdaki şekilde gerçekleştirilebilir:
pgAdmin İç Birleştirme
Theta Nasıl Kullanılır? PostgreSQL pgAdmin'i kullanma
Postgres'te pgAdmin kullanarak Theta join'i kullanma adımları aşağıda verilmiştir:
Adım 1) pgAdmin hesabınıza giriş yapın
Kimlik bilgilerinizi kullanarak pgAdmin'i açın ve Giriş yapın
Adım 2) Demo veritabanı oluşturun
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
Adım 3) Sorguyu yazın
Sorgu düzenleyicisine aşağıdaki sorguyu yazın:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Adım 4) Sorguyu yürütün
Yürüt düğmesine tıklayın
Aşağıdaki sonucu döndürmesi gerekir:
EQUI'ye Katılın
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
) 4 Adım Yürüt düğmesine tıklayın.
Aşağıdaki sonucu döndürmesi gerekir:
Doğal Birleştirme
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
SELECT * FROM Book NATURAL JOIN Price;
) 4 Adım Yürüt düğmesine tıklayın.
Aşağıdaki sonucu döndürmesi gerekir:
pgAdmin Basit İç Birleştirme
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
) 4 Adım Yürüt düğmesine tıklayın.
Aşağıdaki sonucu döndürmesi gerekir:
pgAdmin Dış Katılma
Sol dış katılma
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
) 4 Adım Yürüt düğmesine tıklayın.
Aşağıdaki sonucu döndürmesi gerekir:
Sağ Dış Birleştirme
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
) 4 Adım Yürüt düğmesine tıklayın.
Aşağıdaki sonucu döndürmesi gerekir:
Tam Dış Birleştirme
) 1 Adım pgAdmin hesabınıza giriş yapın.
) 2 Adım
- Soldaki gezinme çubuğundan Veritabanları'na tıklayın.
- Demo'yu tıklayın.
) 3 Adım Sorgu düzenleyicisine sorguyu yazın:
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
) 4 Adım Yürüt düğmesine tıklayın.
Aşağıdaki sonucu döndürmesi gerekir:
ÖZET
- In PostgreSQLbirden fazla tablodan değer almamız gerektiğinde JOIN'leri kullanırız.
- INNER JOIN, JOIN'in en temel türüdür. Belirtilen JOIN koşulunun sağ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 yalnızca diğer tablodaki birleştirme koşulunun karşılandığı satırları döndürür.
- Bu JOIN türü, birleştirme koşulunun karşılanmadığı durumlarda, soldaki tablodaki tüm satırları ve sağdaki tablodaki tüm satırları boş değerlerle döndürür.
Bu Eğitimde kullanılan Veritabanını İndirin