Neler yeni

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Kod Paylaşımı SQL Alt Sorgular – İç içe sorgu

CODER

Kullanıcı
Katılım
5 Ara 2022
Mesajlar
2
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
SQL:
SELECT kat_id FROM kategoriler WHERE kat_adi = 'Bilgisayar'
Üst sorgu
SQL:
SELECT * FROM urunler WHERE kat_id = ( Alt sorgu )
Alt ve üst sorguyu birleştirelim.
SQL:
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.
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Tema düzenleyici

Tema özelletirmeleri

Grafik arka planlar

Granit arka planlar