SQL Alt Sorgular – İç içe sorgu

Yazıda SQL alt sorgu veya iç içe sorgu olarak bilinen SQL sorguları, MySQL, SQL Server, Oracle vb. sistemler için anlatılmıştır.

Alt sorgular SQL içerisinde kullanılan SELECT sorgusunun özel bir türüdür.

Veri tabanı tasarımı sırasında verilerin tekrarını önlemek amacıyla nesnelere parçalara ayrılır.

Ayrılan parçalar INNER Join, LEFT Join, RIGHT Join kullanılarak birleştirilerek istenilen veriye ulaşılabilir.

Alt sorgularda benzer şekilde verileri birleştirmek için kullanılır.

İç içe sorgular genellikle bir alt ve üst sorgudan oluşur.

Alt sorgu sınırı yoktur.

Alt sorgu ile bir tablodaki değer elde edilir ve bu değer üst sorguda kullanılır.

Alt sorguların daha iyi anlaşılabilmesi için bir örnek vermek gerekirse; Veri tabının da kategoriler ve urunler olmak üzere iki tablo olduğunu varsayalım.

Alt sorguları kullanarak urunler tablosunda bulunan Bilgisayar ürünlerini listeleyelim.

Bu işlem için ilk olarak alt sorgu ile kategoriler tablosunda Bilgisayar kaydına ait sıra numarasını (ID) alıp daha sonra bu sıra numarasını üst sorguda kullanabiliriz.

Alt sorgu

SELECT kat_id FROM kategoriler WHERE kat_adi = 'Bilgisayar'

Üst sorgu

SELECT * FROM urunler WHERE kat_id = ( Alt sorgu )

Alt ve üst sorguyu birleştirelim.

SELECT * FROM urunler WHERE kat_id = (SELECT kat_id FROM kategoriler WHERE kat_adi = 'Bilgisayar')

Not: Alt sorgunun sadece bir değer döndürdüğüne dikkat edilmedilir.

Alt sorgu birden fazla değer döndürürse IN anahtar kelimesi kullanılır.

Alt sorguları kullanarak bir tablodaki ortalama değerden fazla veya az, en büyük değer, en küçük değer vb. değerler alınarak kullanılır.

Örneğin; Bir ders ortalamasından yüksek alan öğrencileri listelemek, bir firmada çalışan Mühendis ve Pazarlamacı listelemek için kullanılabilir.

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!