Alt sorgular nedir?
Alt sorgu, başka bir sorgu içinde yer alan bir seçme sorgusudur. İç seçim sorgusu genellikle dış seçim sorgusunun sonuçlarını belirlemek için kullanılır.
Alt sorgu söz dizimine bakalım -
MyFlix Video Kitaplığındaki yaygın bir müşteri şikayeti, az sayıda film başlığı olmasıdır. Yönetim, en az başlığı olan bir kategori için film satın almak istiyor.
Gibi bir sorgu kullanabilirsiniz
SELECT category_name FROM categories WHERE category_id =( SELECT MIN(category_id) from movies);
Bir sonuç verir
Bu sorgunun nasıl çalıştığını görelim
Yukarıdakiler bir Satır Alt Sorgusu biçimidir . Bu tür alt sorgularda, iç sorgu yalnızca BİR sonuç verebilir. Satır alt sorgularıyla çalışırken izin verilen operatörler şunlardır: [=,>, =, <=,,! =,]
Başka bir örneğe bakalım,
Bir film kiralayan ve henüz onları iade etmeyen kişilerin Adlarını ve Telefon numaralarını istediğinizi varsayalım. İsimler ve Telefon Numarasını aldığınızda bir hatırlatma yapmak için onları arayın. Gibi bir sorgu kullanabilirsiniz
SELECT full_names,contact_number FROM members WHERE membership_number IN (SELECT membership_number FROM movierentals WHERE return_date IS NULL );
Bu sorgunun nasıl çalıştığını görelim
Bu durumda, iç sorgu birden fazla sonuç döndürür. Yukarıdakiler, T abe sorgu tipidir .
Şimdiye kadar iki sorgu gördük, şimdi üçlü sorgu örneğini görelim !!!
Yönetimin en yüksek ödeme yapan üyeyi ödüllendirmek istediğini varsayalım.
Gibi bir sorgu çalıştırabiliriz
Select full_names From members WHERE membership_number = (SELECT membership_number FROM payments WHERE amount_paid = (SELECT MAX(amount_paid) FROM payments));
Yukarıdaki sorgu şu sonucu verir -
Alt Sorgular Vs Katılıyor!
Joins ile karşılaştırıldığında, alt sorguların kullanımı basit ve okunması kolaydır. Joins kadar karmaşık değiller
Bu nedenle, SQL'e yeni başlayanlar tarafından sıklıkla kullanılmaktadır.
Ancak alt sorgularda performans sorunları vardır. Bir alt sorgu yerine bir birleştirme kullanmak, bazen size 500 kata kadar performans artışı sağlayabilir.
Bir seçenek verildiğinde, bir alt sorgu üzerinden bir JOIN kullanılması önerilir.
Alt Sorgular yalnızca yukarıdakileri elde etmek için bir JOIN işlemini kullanamadığınızda bir geri dönüş çözümü olarak kullanılmalıdır
Özet
- Alt sorgular, başka bir sorgu içine yerleştirilmiş sorgulardır. Gömülü sorgu, iç sorgu olarak bilinir ve kapsayıcı sorgusu, dış sorgu olarak bilinir.
- Alt sorguların kullanımı kolaydır, büyük esneklik sunar ve sorguyu oluşturan tek mantıksal bileşenlere kolayca bölünebilir; bu, sorguları test ederken ve hata ayıklarken çok yararlıdır.
- MySQL üç tür alt sorguyu, skaler, satır ve tablo alt sorgularını destekler.
- Skaler alt sorgular yalnızca tek bir satır ve tek bir sütun döndürür.
- Satır alt sorguları yalnızca tek bir satır döndürür ancak birden fazla sütuna sahip olabilir.
- Tablo alt sorguları, birden çok satırın yanı sıra sütun da döndürebilir.
- Alt sorgular ayrıca INSERT, UPDATE ve DELETE sorgularında da kullanılabilir.
- Performans sorunları için, birden çok tablodan veri almak söz konusu olduğunda, alt sorgular yerine JOIN'lerin kullanılması şiddetle önerilir. Alt sorgular yalnızca iyi bir nedenle kullanılmalıdır.