Dış Sorgu ile SQL Alt Sorgu Birleştirme

Dis Sorgu Ile Sql Alt Sorgu Birlestirme



İlişkisel veritabanlarıyla çalışmak söz konusu olduğunda, istediğiniz görevleri gerçekleştirmek için sorguları nasıl manipüle edeceğinizi ve birleştireceğinizi öğrenmeniz gerekir. Bu nedenle, her ilişkisel veritabanı motoru, kullanıcıları için olağanüstü özellikler, verimlilik ve kullanım kolaylığı sağlamaya çalışarak kendi SQL dilini uygular.

SQL'in en güçlü özelliklerinden biri alt sorgulardır. Alt sorgular, daha büyük ve daha karmaşık bir sorgu içindeki iç içe geçmiş sorgular kümesidir. Alt sorgular, verileri almanıza veya tek bir varlık olarak daha karmaşık işlemler gerçekleştirmenize olanak tanır.







Veri filtreleme, sıralama, birden çok tabloda toplama ve daha fazlasını gerçekleştirmek için alt sorguları kullanabiliriz.



Ancak, SQL alt sorguları altında gizlenen başka bir özellik, alt sorgu birleştirmeleri olarak bilinir. Bunlar alt sorgulara benzer; bunun yerine, tabloları birleştirmek için bir dış sorgu içindeki alt sorguları kullanmanıza izin veren birleştirmelerdir.



Başınız dönüyorsa endişelenmeyin çünkü alt sorgu birleştirmelerinde ustalaşmak, özellikle başlangıçta zor olabilir. Bununla birlikte, bu öğretici, alt sorgu birleştirmelerini çok fazla şansa bırakmadan temel adımlarda parçalamaya çalışır.





SQL, SQL Birleştirmeleri, SQL Alt Sorguları veya benzeri konularda yeni olmadığınızı varsaydığımızı unutmayın. Ancak, öyleyseniz, daha fazlasını keşfetmek için konularla ilgili eğitimlerimize bakın.

SQL Dış Birleştirmelerinde Ustalaşın

Alt sorgu birleştirmeleriyle nasıl çalışılacağını anlamak istiyorsanız, dış birleştirmelerle nasıl çalışılacağını öğrenmek önemli bir faktördür.



Bilmiyorsanız, bir SQL dış birleştirme, bir tablodan tüm satırları ve ikinci tablodan eşleşen satırları getirmenizi sağlar. Sol dış birleştirme, sağ dış birleştirme, tam dış birleştirme vb. dahil olmak üzere bundan biraz daha karmaşıktır.

Bir SQL sol dış birleşiminde sorgu, sol tablodaki tüm satırları ve sağ tablodaki eşleşen satırları döndürür. Sağ tabloda eşleşen satır yoksa, sorgu sonuç sütunlarında NULL değerleri içerir.

Sağ dış birleştirme durumunda, sorgu sağ tablodaki tüm satırları, ancak yalnızca sol tablodaki eşleşen satırları döndürür. Benzer şekilde, sol tablodan eşleşen satır yoksa sorgu NULL değerlerini içerir.

Son olarak, tam dış birleşime sahibiz. Bu birleştirme, sağ ve sol tablolardaki tüm satırları ve eşleşmeyen kayıtlar için NULL değerlerini döndürür.

SQL Alt Sorgu Birleştirmeleri

Artık SQL alt sorgularını anladığımıza göre, alt sorgu birleştirmelerinden bahsedelim. Alt sorgu birleştirmeleri, tabloları birleştirmek için bir dış sorgu içindeki alt sorguları kullanmamıza izin verir.

diye soruyorsan, öyle mi? Evet, alt sorgu birleştirmelerinin yaptığı tek şey budur.

Bunu daha iyi göstermek için, aşağıda gösterilen sözdizimi örneğini alın:

SEÇME *
tablo1'den
SOL DIŞ KATILMA (
sütun1, sütun2'yi SEÇİN
tablo2'den
) AS alt sorgusu
AÇIK tablo1.sütun3 = alt sorgu.sütun1;


Önceki sözdiziminde, bir alt sorguyla birleştirmek için sol dış birleşim kullanarak birinci tablodaki tüm sütunları seçiyoruz. Alt sorgunun rolü, Tablo 2'den tanımlanan sütunları getirmektir. Daha sonra Tablo 1'den sütun 2'nin ve alt sorgudan sütun 1'in koşuluyla Tablo 1 ile birleştiririz.

Pratik Örnek:

Teorik olarak, daha az sezgisel görünüyor, ancak Sakila veri tabanını alarak gerçek dünya senaryosunu ele alalım.

Veritabanındaki tüm filmlerin listesini ve ilgili dillerini almak istediğimizi varsayalım. Filmlerin dilleri dil tablosunda, film isimleri ise film tablosunda saklanır.

Ancak, film tablosunun dil tablosundan “language_id” sütunu adı verilen bir yabancı anahtarı vardır. Bu nedenle, aşağıdaki sorguda gösterildiği gibi iki tabloyu birleştirmek için sol dış birleştirme ile bir alt sorgu birleştirme kullanabiliriz:

f.title, l.name AS dilini SEÇİN
f filminden
SOL DIŞ KATILMA (
dil_kimliği, adı SEÇİN
dilden
) ben olarak
AÇIK f.language_id = l.language_id;


Bir önceki örnek sorgumuzda film tablosundan title sütununu, dil tablosundan name sütununu seçiyoruz.

Ardından, diller tablosundan language_id ve ad sütununu seçmek için bir alt sorgu kullanırız. Bir sonraki adım, film tablosundaki language_id'nin dil tablosundaki language_id'ye eşit olması koşuluyla, onu film tablosuyla birleştirmektir.

Tüm filmlerin sonuca dahil edildiğinden emin olmak için sol tablodaki tüm sonuçlardan oluşan sol dış birleştirmeyi kullanmamız gerekir ki bu durumda film tablosudur.

Örnek bir çıktı aşağıdaki gibidir:


Aynısını sağ dış birleştirme ile de yapabiliriz. Sözdizimi aşağıdaki gibidir:

SEÇME *
tablo1'den
SAĞ DIŞ BİRLEŞİM (
sütun1, sütun2'yi SEÇİN
tablo2'den
) AS alt sorgusu
AÇIK tablo1.sütun3 = alt sorgu.sütun1;


Bu, benzer şekilde davranır ancak eşleşen kayıt olmasa bile doğru tablodaki tüm kayıtları içerir.

Bilmeniz Gereken Yararlı Şeyler

Alt sorgu birleştirmelerinin inanılmaz derecede yararlı olmasına ve iş akışınızı optimize edebilmesine rağmen, bunları dikkatli kullanın.

Örneğin, büyük bir veri kümesiyle alt sorgu birleştirmelerini kullanmaktan kaçının. Bunun nedeni, veritabanı performansını etkileyebilecek kapsamlı kayıtları döndürebilmeleridir.

Herhangi bir alt sorgu birleştirme işlemini gerçekleştirmeden önce sorgu analiz araçlarını kullanmayı düşünün.

Çözüm

Bu öğretici, SQL'de alt sorgular ve alt sorgu birleştirmeleriyle çalışmanın temellerini araştırdı. Bu eğitimin sonunda, artık alt sorgu birleştirmeleriyle nasıl çalışılacağını, bunları neden kullanmanız gerekebileceğini ve iş akışınızda size nasıl yardımcı olabileceklerine dair pratik bir örneği anladınız.