TOP

SQL Dersi 10. Tabloları birleştirme (INNER JOIN)

SQL dilinin en güçlü özelliği, sorgu yürütme sırasında DBMS'nin RAM'inde farklı tabloları birleştirme yeteneğidir. Birleştirmeler veri analizi için sıklıkla kullanılır. Kural olarak, veriler farklı tablolarda bulunur, bu da onların daha verimli bir şekilde saklanmasına olanak tanır (bilgiler kopyalanmadığından), veri işlemeyi basitleştirir ve veritabanının ölçeklendirilmesine olanak tanır (ek bilgilerle yeni tablolar eklemek mümkündür) .

DBMS MS Access'de kullanılan veritabanı tabloları ilişkisel tablolardır, yani tüm tablolar birbirine ortak alanlarla bağlanabilir.


1. Tabloların bir kombinasyonunun oluşturulması (JOINS)

Tabloları birleştirmek çok basit bir işlemdir. Kombinasyona dahil edilecek tüm tabloların belirtilmesi ve birbirleriyle nasıl ilişkilendirileceğinin DBMS'ye "açıklanması" gerekir. Bağlantı WHERE kelimesi kullanılarak yapılır, örneğin:

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers, Sumproduct 
WHERE Sellers.City = Sumproduct.City

İki tabloyu birleştirerek her satıcının hangi ürünleri sattığını görebildik. Normal bir istekten biraz farklı olduğu için istek koduna daha yakından bakalım. SELECT deyimi görüntülemek istediğimiz sütunları belirterek başlar ancak bu alanlar farklı tablolardadır, FROM cümlesi SELECT deyiminde birleştirmek istediğimiz iki tabloyu içerir, tablolar sütunları belirten WHERE sözcüğü kullanılarak birleştirilir katılmak. Her iki tabloda da City alanı bulunduğundan alanın tam adını (Table.Field) belirtmeniz gerekir.

2. Dahili kombinasyon (INNER JOIN)

Önceki örnekte, iki tablonun denkliğine dayalı bir kontrol gerçekleştiren tabloları birleştirmek için WHERE kelimesini kullandık. Bu tür bir kombinasyona "iç kombinasyon" da denir. Kombinasyon türünü açıkça belirten tabloları birleştirmenin başka bir yolu da vardır. Aşağıdaki örneği düşünün:

Run SQLSELECT DISTINCT Seller_name, Product 
FROM Sellers 
INNER JOIN Sumproduct 
ON Sellers.City = Sumproduct.City

Bu sorguda WHERE yerine benzer sonuç veren INNER JOIN ... ON ... yapısını kullandık. Her ne kadar WHERE deyimiyle birleşimi daha kısa olsa da, ilerleyen bölümlerde daha ayrıntılı olarak açıklanacağı üzere daha esnek olduğundan INNER JOIN'yi kullanmak yine de daha iyidir.