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)
- Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
- 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)
- Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
- 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)
- Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
- 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)
- Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
- 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)
- Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
- 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)
- Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
- 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)
- Soldaki gezinme çubuğundan Veritabanları'nı tıklayın.
- 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