Sub Query Nedir?
Subquery, bir SQL sorgusunun içinde bulunan bir sorgudur ve bir ana sorgunun sonuç kümesindeki verileri döndürür. Bir alt sorgu, bir üst sorgunun kaynak verilerinin bir parçasını döndürmek için kullanılır. Alt sorgu, üst sorguda kullanılan bir operatör, fonksiyon veya ifade içinde yer alabilir. Bu alt sorgular, karmaşık sorgulama gerektiren durumlarda kullanışlıdır ve genellikle diğer sorgulama teknikleri ile birlikte kullanılırlar.
Subquery, bir SQL sorgusunun içinde yer aldığı için, bir sorgu içindeki bir tablodan veya başka bir veri kaynağından veri çekmek için kullanılabilir. Alt sorgu, ana sorguda kullanılan bir koşul ifadesi olarak işlev görebilir ve bir sorgunun sonuç kümesini daha da filtreleyebilir veya sınırlayabilir. Alt sorgular ayrıca, bir sorgunun içinde yer alan bir başka sorgunun sonucunu işlemek için kullanılabilir.
Alt sorgular, iki ana kategoriye ayrılabilir: Tek satırlı alt sorgular ve çok satırlı alt sorgular. Tek satırlı alt sorgular, yalnızca bir değer döndürür ve bir sorgu içinde bir koşul ifadesi olarak kullanılabilir. Çok satırlı alt sorgular, bir sorgu sonucu olarak birden çok satır döndürebilir ve bir tablonun bir parçası olarak kullanılabilir.
Alt sorguların kullanımı, SQL sorgularının karmaşıklığını artırabilir, ancak bazı durumlarda daha verimli bir sorgu yazmayı mümkün kılar. Alt sorgular, başka bir sorgunun sonucuna dayanan sorgular yazmak için kullanılabilir ve birçok veritabanı yönetim sistemi, alt sorguların desteklenmesi için optimize edilmiştir.
Bir alt sorgu, bir SQL sorgusunun herhangi bir yerinde kullanılabilir. Alt sorgular, SELECT, INSERT, UPDATE ve DELETE sorgularının herhangi birinde kullanılabilir. Örneğin, bir alt sorgu, bir tablonun herhangi bir alanında veri aramak için kullanılabilir. Alt sorgular ayrıca, bir sorgunun sonucuna göre bir tablodan veri eklemek veya güncellemek için de kullanılabilir.
Bir alt sorgu, bir SELECT sorgusu içinde kullanılarak, bir sorgunun sonuç kümesindeki verileri daha da filtrelemek için kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, Customers tablosundaki müşterilerin isimlerini, şehirlerini ve devletlerini döndürür:
SELECT CustomerName, City, State
FROM Customers;
Ancak, bu sorgunun sonucu çok fazla veri içerebilir ve daha spesifik bir
sonuç kümesi elde etmek isteyebilirsiniz. Bu durumda, bir alt sorgu kullanarak sorgunun sonucunu daha da filtreleyebilirsiniz. Örneğin, aşağıdaki SQL sorgusu, müşterilerin şehirleri “London” olanları döndürür:
SELECT CustomerName, City, State
FROM Customers
WHERE City = ‘London’;
Bu sorgu, sadece “London” şehrindeki müşterileri döndürür. Ancak, bu sorgu, yalnızca “London” şehrindeki müşterileri döndürür ve diğer şehirlerdeki müşterileri dışlar. Bu durumda, bir alt sorgu kullanarak sorgunun sonucunu daha da filtreleyebilirsiniz. Örneğin, aşağıdaki SQL sorgusu, “London” şehrindeki müşterilerin “UK” devletinde olduğunu döndürür:
SELECT CustomerName, City, State
FROM Customers
WHERE State = (
SELECT State
FROM Customers
WHERE City = ‘London’
);
Bu sorgu, “London” şehrindeki müşterilerin “UK” devletinde olduğunu döndürür ve diğer şehirlerdeki müşterileri dışlamaz.
Bir alt sorgu, bir SELECT sorgusu içinde kullanılabilmesinin yanı sıra, bir INSERT sorgusu içinde de kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, “Orders” tablosuna bir yeni sipariş ekler:
INSERT INTO Orders (CustomerID, OrderDate, ShippedDate)
VALUES (
(SELECT CustomerID FROM Customers WHERE CustomerName = ‘Alfreds Futterkiste’),
‘2023-04-05’,
‘2023-04-10’
);
Bu sorgu, “Customers” tablosundan müşteri ID’sini ve belirtilen tarihleri alan bir alt sorgu kullanarak “Orders” tablosuna yeni bir sipariş ekler.
Bir alt sorgu, bir UPDATE sorgusu içinde de kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, “Customers” tablosundaki müşterilerin şehirlerini “Paris” olarak günceller:
UPDATE Customers
SET City = ‘Paris’
WHERE Country = (
SELECT Country
FROM Customers
WHERE City = ‘Paris’
);
Bu sorgu, “Paris” şehrindeki müşterilerin ülkelerini alan bir alt sorgu kullanarak “Customers” tablosundaki müşterilerin şehirlerini “Paris” olarak günceller.
Son olarak, bir alt sorgu, bir DELETE sorgusu içinde de kullanılabilir. Örneğin, aşağıdaki SQL sorgusu, “Customers” tablosundaki şehri “Berlin” olan müşterileri siler:
DELETE FROM Customers
WHERE City = (
SELECT City
FROM Customers
WHERE City = ‘Berlin’
);
Bu sorgu, “Berlin” şehrindeki müşterileri alan bir alt sorgu kullanarak “Customers” tablosundaki müşterileri
Bunları da okumalısınız
Web Tasarımında İlham Veren 2023 Trendleri
10 Temmuz 2023
Yapay Zeka: Günlük Hayatımızı Nasıl Değiştiriyor?
6 Temmuz 2023
Youtube Otomasyon Kaynakları Nelerdir?
8 Haziran 2023